کمک در مورد ادغام دو فایل نصبی apk
سلام و خسته نباشید به اساتید عزیز بنده تا حالا برنامه نویسی اندروید انجام ندادم . و میخوام دوتا فایل اندرویدی رو به هم بچسبونم که وقتی یکیشون رو نصب میکنی دومی هم باهاش نصب بشه مثلا من یک برنامه ماشین حساب رو با یک بازی ادغام کنم و وقی بازی نصب شد ماشین حساب هم نصب بشه . همچین کاری در اندروید استودیو امکان پذیره الان دانود و نصب کردم و نمیدونم چجوری انجام بدم و سوال دوومم اینه که ایا راهی هست که بشه بعد از نصب برنامه در بک گراند فعال باشه و غیره قابل حذف ؟ ممنون میشم واضح و شفاف برای من که مبتدی هستم توضیح بدید
با سلام
اگر بخواهیم دو برنامه "متفاوت" رو به طور "هم زمان" نصب کنیم، با دو تا چالش روبرو هستیم ، متفاوت بودن برنامه ها و هم زمان نصب کردن اون ها :
اگر بخواهیم دو برنامه هم زمان نصب شن دو حالت به وجود میاد ، اول اینکه هر دو برنامه از یک Manifest استفاده میکنن و به اصطلاح برنامه خودتونن ، کاربردش هم جاهایی هست که برای مثال یک برنامه برای ادمین و یک برنامه برای یوزر عادی استفاده میشه ، برای این کار میشه داخل برنامه خودتون اکتیویتی های مربوط به هر دو مورد رو بسازین و بعد داخل فایل Manifest خودتون این تغییرات رو انجام بدین :
<application android:allowBackup="true"
android:icon="@drawable/main_icon"
android:label="@string/main_name"
android:theme="@style/AppTheme" >
<activity android:name="com.example.MyActivity1"
android:taskAffinity="com.example.MyActivity1"
android:icon="@drawable/icon1"
android:label="@string/name1" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.MyActivity2"
android:taskAffinity="com.example.MyActivity2"
android:icon="@drawable/icon2"
android:label="@string/name2" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
که این کد میاد و دو آیکون و دو لانچر برای برنامه درست میکنه و آیکون ها و اسم ها رو هم از قسمت های Icon و Label بر میداره و محتوای متفاوتی از دو برنامه ارائه میده .
دومین حالتی که به وجود میاد این هست که برنامه متفاوتی از برنامه خودتون رو هم زمان نصب کنین ، به طور کلی فکر نمیکنم اندروید اجازه این کار رو بده ولی میشه بعد از نصب و اجرای برنامه خودتون ، فایل APK که در کنار پروژه قرار داده شده رو داخل حافظه داخلی کپی کرد و بعد اقدام به نصب اون کنید ، برای کپی کردن یک فایل از پروژه به حافظه داخلی میتونین سرچ کنین (که چالش ما نیست) و بعد اون از طریق کد زیر میتونین فایل رو نصب کنین :
String fileName = Environment.getExternalStorageDirectory() + "/APK_NAME.apk"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); startActivity(intent);
البته باید قبل از اون کد های زیر رو به Manifest اضافه کنید :
<activity android:name=".PackageInstallerActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:excludeFromRecents="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.INSTALL_PACKAGE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="file" /> <data android:mimeType="application/vnd.android.package-archive" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.INSTALL_PACKAGE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="content" /> <data android:scheme="file" /> </intent-filter> </activity>
در مورد دوم هم میشه برنامه در بک گراند فعال باشه که باید با سرویس ها کار شه (قسمت Alarm Manager و SMS آموزش های استاد رو ببینید) ولی غیر قابل حذف بعید میدونم اجازه داده بشه .
امیدوارم توضیحات داده شده جامع و کافی باشه .
موفق باشید./
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .