رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با اجرای یک برنامه جانبی در اپلکیشن خودمون
#1
سلام خسته نباشید 
من یک فایل دارم با فرمت iso میخوام وقتی کاربر رو button کلیک کرد این فایل با برنامه ای که مشخص کردم باز شه
این کد من هست ولی اجرا نمیشه:
run = (Button) findViewById(R.id.btn_run);
        run.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {
               Intent i = new Intent(Intent.ACTION_VIEW);
               i.setPackage("org.ppsspp.ppsspp");
               File file = new File("file.iso");
               i.setDataAndType(Uri.fromFile(file), "Android/file.iso");
               startActivity(i);
           }
       });
پاسخ
تشکر شده توسط:
#2
باید مسیر مطلق فایل رو محاسبه کنید. برای مثال اگه توی SDCard هست، باید مسیر رو بگیرین (ازطریق getExternalStorageDirectory و بعد getAbsolutePath) و بعد اسم فایل رو اضافه کنید. بهتره قبل از اینکه هر کاری انجام بدین، با کد زیر چک کنید فایل وجود داره یا نه:
File file = Environment.getExternalStorageDirectory().getAbsolutePath() + "/iso/file.iso";
if (file.exists()) {
    // ...
}

همچنین با کمک بلاک try-catch و مدیریت خطای ActivityNotFoundException از نصب‌بودن برنامه‌ی موردنظرتون مطمئن بشین. همچنین این‌کار نیاز به داشتن مجوز READ_EXTERNAL_STORAGE و درصورت لزوم برای نوشتن توی اون مسیر، WRITE_EXTERNAL_STORAGE داره.
پاسخ
تشکر شده توسط: reza7z
#3
استاد فایل و برنامه ای که باید باهاش باز کنه هست
بذارید ساده بگم رو مثال زیر توضیح بدید راحت تره.
من یک ویدئو دارم تو حافظه گوشی با فرمت .mp4 میخوام این ویدئو حتما با MxPlayer پخش شه وقتی رو باتن کلیک شد.
اسم ویدئو reza.mp4
پکیج نام پلیر: com.abc.mxplayer
این نکته هم اضافه کنم که هم ویدئو و هم Mxplayer رو گوشی هستن و نیازی به چک کردن نیست
پاسخ
تشکر شده توسط:
#4
بله هستن ولی باید مسیر کامل بدین نه فقط اسم فایل. ضمناً بهتره همیشه وجود برنامه رو چک کنید چون ممکنه یکی از کاربران رعایت نکرده باشه و برنامه روی گوشیش نصب نباشه و اونوقت برنامه‌ی شما Crash میکنه درحالی که میشه با یه پیغام خطای مناسب و شیک، قضیه رو جمع‌وجور کرد تا کاربر متوجه اشتباهش بشه و گردن برنامه‌ی شما نندازه.
پاسخ
تشکر شده توسط: reza7z




کاربران در حال بازدید این موضوع: 1 مهمان