راه اندازی یک برنامه توسط برنامه دیگر در اندروید و بررسی نصب بودن برنامه ها در سیستم اندروید
بعدها بعنوان برنامه نویس برای شما این ضرورت نمایان خواهد شد که بخواهید برنامه ای با پکیج و نام متفاوتی را در برنامه خود راه اندازی کنید. یا مثلاً ممکن است کاربران استفاده کننده از برنامه های اندرویدی شما به جهت سهولت استفاده از خدمات خاصی قادر باشند برنامه های دیگری را باز کنند.این امر نیز به مانند سایر جابه جایی هایی برنامه های اندروید بوسیله Intent صورت می گیرد ما می توانیم با استفاده از متد ComponentName برنامه ای را که قصد باز کردن آن را داریم برای برنامه تعریف کنیم.
Intent intent = new Intent(); intent.setComponent(new ComponentName("ir.example.psrd", "ir.example.psrd.Splash")); startActivity(intent);
همانطور که در فوق می بینید آرگومان اول در متد ComponentName نام پکیجی است که قصد مهاجرت به آن را دارید و آرگومان دوم آدرس اکتیویتی موردنظرتان در همان پکیج است. به یاد داشته باشید به منظور اعمال چنین برنامه هایی باید دقت کنیم که حتماً پکیج مورد نظرمان را که قصد باز کردن آن را داریم نصب شده باشد. فلذا ضروری است قبل از اجرای دستور Intent باید بررسی کنیم که آیا پکیج مورد نظر ما نصب شده است یا خیر. به همین منظور می توانید از متد زیر استفاده کنید.
private boolean appInstalledOrNot(String uri) { PackageManager pm = getPackageManager(); try { pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES); return true; } catch (PackageManager.NameNotFoundException e) { } return false; }
این متد دارای یک آرگومان بنام uri است که آدرس پکیج موردنظرتان را از شما گرفته و با فراخوانی آبجکتی از کلاس PackageManager و با بکارگیری متدی با عنوان getPackageInfo بررسی می کند که آیا پکیج مورد نظر شما نصب شده است یا خیر. در صورت نصب بودن پکیج مورد نظر مقدار true ودر غیر این صورت مقدار false را بر می گرداند.
بین این ترتیب مجموع کدهای مورد نظر ما به شکل زیر خواهد بود:
boolean isAppInstalled = appInstalledOrNot("ir.example.psrd"); if(isAppInstalled) { Intent intent = new Intent(); intent.setComponent(new ComponentName("ir.example.psrd", "ir.example.psrd.Splash")); startActivity(intent); }
در کد بالا مقدار برگشت داده شده از اجرای متدappInstalledOrNot با آرگومان آدرس پکیج موردنظرمان در متغیری با نام isAppInstalled که نوع boolean است ذخیره می شود و سپس در شرط زیر ما بررسی می کنید که درصورت true بودن ارزش متغیر که بیانگر نصب بودن برنامه موردنظر ماست عملیات Intent صورت بگیرد.
موفق و پیروز باشید.
0 دیدگاه