سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش نصب برنامه در برنامه نویسی اندروید می پردازیم یعنی می خواهیم یک اپلیکیشن دیگر را با استفاده از برنامه خودمان نصب کنیم برای اینکار قبلا آموزشی برای شما قرار دادیم که در ادامه لینک آموزش های قبلی را برای شما قرار می دهیم از این آموزش برای api های زیر 21 می توانید استفاده کنید. در ادامه با ما همراه باشید.
ابتدا دسترسی های زیر را اضافه کنید.
| <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
برای اینکه یک اپلیکیشن را در api بالای 21 نصب کنید لازم است از FileProvider استفاده کنید در ادامه می تواند لینک زیر را مطالعه کنید.
برای اینکار لازم است ابتدا یک فایل از یک url دانلود شود البته می تواند برنامه در حافظه نیز وجود داشته باشد ولی منظقی آن ابتدا دانلود کردن آن است.
برای دانلود فایل از آموزش زیر استفاده کنید.
از آموزش های بالا برای دانلود فایل می توانید استفاده کنید .
بعد از اینکه فایل را دانلود کردید باید مسیر آن را به دست آورید مثل زیر
| String path = context.getFilesDir().getAbsolutePath(); File file = new File(path + "/app.apk"); |
در بالا مسیر فایل را به دست آوردیم دقت کنید نام فایل در اینجا برابر با app است !
| Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")),"application/vnd.android.package-archive"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); |
کد باالا کامل است اما کد قبلی به چه کاری می خورد خوب بهتر است ابتدا مسیر را به دست بیارید سپس در بخش setDataAndType قرار دهید تا راحت تر قابل خواندن باشد. در بالا مسیر فایل مورد نظر در پوشه download تنظیم شده است و نام فایل برابر با app.apk است .
در صورتی که اندروید گوشی بالای 5 باشد این کد کار نخواهد کرد و باید از File Provider استفاده کنید.
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
مطالعه بیشتر
سلام خب قطعا برنامه ای که مینویسیم و انتشار میدهیم برای تمام apiهاست
خب ما اگه از file provider استفاده کنیم در api زیر ۲۱ جواب نمیده اگه استفاده نکنیم در بالای ۲۱ جواب نمیده!!
راه حل و ایده ای برای حل این مشکل ندارین؟؟
نظر خودم اینه به شرط بزاریم اگر api برابر فلان بود این کدها استفاده شه اگر برابر فلان مقدار مد های دیگه امکان پذیره؟ 🙂
سلام تنها راه حل همانطور که گفتید چک کردن api گوشی است .
اگه فایل apk را داخل پوشه گذاشته باشیم و نیازی به دانلود نباشه چطوری نصبش کنیم؟
سلام و درود با استفاده از متد های فایل مسیر را به دست بیارید و همانند بالا که در Intent فرستاده شده است کار را انجام دهید.
سلام
چطوری میتونیم از نصب یک برنامه دلخواه جلوگیری کنیم؟
مثلا نمیخوام تو گوشیم برنامه اینستا نصب بشه
خیلی ممنون از راهنماییتون.
چطوری میشه باهاتون بصورت مستقیم در ارتباط بود؟