اجرای فایل apk برای نصب از طریق برنامه با در نظر گرفتن تارگت اندروید بالای ۲۴

گزارش
سوال

لطفا علت گزارش خود را توضیح دهید.

گزارش لغو

سلام. من میخوام فایلی رو از یک آدرس مشخص اجرا کنم که به کاربر نمایش بدم برای نصب. البته با در نظر گرفتن اینکه تارگت بالای sdk 24 هست و کد قدیمی کار نمیکنه و باید از provider استفاده بشه

کد زیر در button هست که کاربر روی اون میزنه فایل اجرا میشه:

File imagePath = new File(String.valueOf(getApplicationContext().getFilesDir()));
File newFile = new File(imagePath, "myapplication.apk");
Uri contentUri = getUriForFile(getApplicationContext(), "myapp.myapp.fileprovider", newFile);
getApplicationContext().grantUriPermission("myapp.myapp", contentUri, FLAG_GRANT_READ_URI_PERMISSION);
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setData(contentUri);
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent)

کدهای داخل مانیفست هم اضافه شده در بین تگ Application

همچنین یک فایل با نام provider_paths در مسیر پوشه xml ساختم

کدهای دو مورد آخر متاسفانه نتونستم اضافه کنم اینجا چون بعد از ویرایش پاک میشدند.

 

و نهایتا با این پیغام مواجه میشم:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=content://myapp.myapp.fileprovider/newapp/2.1.1.apk typ=application/vnd.android.package-archive flg=0x3 }

حل شده 1
اندروید - android 18 پاسخ 5457 بازدید 1

درباره نویسنده

پاسخ ها ( ۱۸ )

  1. محمد حسین جعفری پور
    1
    ۱۴, مرداد , ۱۳۹۶ در ۶:۴۹ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    سلام دیگر به این گونه سوال خود را در سایت ارسال نکنید یک عنوان در نظر بگیرید , سپس در بخش محتوا سوال خود را قرار دهید ! از دفعه بعد سوال شما حذف می شود در صورتی که گفته ها را رعایت نکنید و در مورد سوالتون منظور خود را به صورت دقیق بگید چه فایلی رو از چه ادرسی می خواید اجرا کنید ؟!
    موفق باشید.

      1
      ۱۴, مرداد , ۱۳۹۶ در ۷:۰۱ ب.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      سلام

      عنوان اصلاح شد.
      ببینید من میخوام یک فایل apk از توی مسیر برنامه خودم برای نصب بر روی دستگاه کاربر اجرا کنم.
      قبلا انجام دادم اما جدیدا اندروید برای اپلیکیشنهایی که تارگت اونها بالاتر از ۲۴ هست میگه باید از Provider استفاده کنید.

      میخواستم اگر لطف کنید یک سمپل کامل از این کد بزارید.
      توی نت زیاد دیدم اما کامل نبودن و متاسفانه درست کار نمیکردن.
      کجا میتونم نمونه کد خود رو بزارم؟

  2. محمد حسین جعفری پور
    1
    ۱۴, مرداد , ۱۳۹۶ در ۸:۱۸ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    اگر درست متوجه شده باشم این کد باید براتون کار کنه

    موفق باشید.

    1
    ۱۴, مرداد , ۱۳۹۶ در ۸:۳۵ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    متاسفانه کار نمیکنه.
    چجوری میتونم کدم رو اضافه کنم به متن بالا که کامل متوجه بشید؟

    • محمد حسین جعفری پور
      1
      ۱۴, مرداد , ۱۳۹۶ در ۸:۳۸ ب.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      می تونید متن رو اضافه کنید مشکلی نداره یا بخش اکتویتی ها را در یک جا آپلود کنید لینک قرار دهید تا دانلود کنم تا ببینم مشکل در چیه

    • محمد حسین جعفری پور
      1
      ۱۴, مرداد , ۱۳۹۶ در ۸:۴۵ ب.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      من کد زیر رو تست کردم مشکلی نداشت شمام تست کنید شاید براتون جواب داد فایل apk رو در پوشه assets قرار دهید.

      موفق و پیروز باشید.

    1
    ۱۴, مرداد , ۱۳۹۶ در ۸:۵۴ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    مشکل اینجاست که فایل اول دانلود میشه و بعد نصب میشه و از اول ما فایل رو نداریم که بازریمش تو پوشه assets.

    این کدتونو تست میکنم مجدد پست میزارم

    1
    ۱۴, مرداد , ۱۳۹۶ در ۸:۵۸ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    این لینک رو ببینید:

    https://inthecheesefactory.com/blog/how-to-share-access-to-file-with-fileprovider-on-android-nougat/en

    با povider کار کرده.

    اینم منبع اصلی:
    من طبق این پیش رفتم اما همون ارور رو میگیره از من که بالا نوشتم:

    https://developer.android.com/reference/android/support/v4/content/FileProvider.html

    • محمد حسین جعفری پور
      1
      ۱۴, مرداد , ۱۳۹۶ در ۹:۰۹ ب.ظ

      لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

      گزارش لغو

      همانطور که نوشته شده گفته از اندروید api 24 یا همان Nougat امکان اتچ کردن یک فایل نداره یا همان قرار دادن “File://” وجود ندارد علتش هم بستن دسترسی برنامه نویسه کمی صبر کنید آموزش آن را قرار میدم.

    1
    ۱۴, مرداد , ۱۳۹۶ در ۹:۱۳ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    بله درسته

    متاسفانه کد رو لازم دارم. الان ۳ روزه که درگیر همین هستم.
    امکانش هست امشب این کد گذاشته بشه؟
    فکر میکنم بدرد افراد زیادی بخوره

    1
    ۱۴, مرداد , ۱۳۹۶ در ۹:۲۵ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    خیلی لطف میکنید جناب جعفر پور

    1
    ۱۴, مرداد , ۱۳۹۶ در ۱۱:۳۲ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    آقای جعفری پور آموزش به امشب میرسه برای قرار دادن تو سایت؟

    1
    ۱۵, مرداد , ۱۳۹۶ در ۴:۴۲ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    سپاس از شما بابت آموزش خوبتون در این زمینه

    1
    ۱۵, مرداد , ۱۳۹۶ در ۴:۴۴ ب.ظ

    لطفا علت گزارش خود را در رابطه با این پاسخ بنویسید.

    گزارش لغو

    آموزش کامل این مبحث در لینک زیر گذاشته شده:
    &nbsp

    http://programchi.ir/2017/08/06/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-fileprovider-%d8%af%d8%b1-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%a7%d9%86%d8%af%d8%b1%d9%88%db%8c%d8%af/

ارسال نظر