您好,登錄后才能下訂單哦!
兩個app之間怎么調用?
(1):通過顯示Intent 啟動
首先:配置好B app 的action,即AndroidManifest.xml中聲明
<intent-filter>
<action android:name="com.itlanbao.app.MainActivity"/>
</intent-filter>
A app 調用需要知道B app對應的action
通過如下方法調用:
Intent Intent = new Intent();
intent.setClassName("com.itlanbao.app", "com.itlanbao.app.MainActivity");
startActivity(intent);
(2):隱式的Intent來啟動方式
比如調用打電話功能:
1.Uri number = Uri.parse("tel:5551234");
2.Intent callIntent = new Intent(Intent.ACTION_DIAL, number);
瀏覽網頁:
Uri webpage = Uri.parse("http://www.android.com");
Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage);
此外,我們在定義我們的Intent的時候,要盡可能的詳細,例如我們希望調用系統的圖片查看器瀏覽圖片,我們應該定義MIME type" p_w_picpath/*.",以防止會啟動map app進行查看。而且如果沒有app來響應我們的請求,我們的app就會崩潰。
因此為了防止我們的app發送intent沒有其他app來響應而導致應用異常退出,我們在發送intent前進行驗證。為了驗證是否有app的
Activity來響應我們的Intent請求,我們需要調用queryIntentActivities()來進行驗證。這個方法會返回一個list,
我們通過判斷list是否為空來驗證,這樣我們可以安全的使用Intent來實現不同App之間Activity的交互。如果沒有響應的Acitivty
來響應,我們可以提供一些鏈接給用戶進行下載安裝
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 0);
boolean isIntentSafe = activities.size() > 0;
文章來自IT藍豹,感謝原創作者的辛勤付出!
請轉發標明出處:www.itlanbao.com
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。