簡體   English   中英

如何從另一個Android應用程序調用一個Android應用程序

[英]How to call one android application from another android application

我想從另一個應用程序調用一個Android應用程序

我已經嘗試了一些示例 ,但它們不適合我,我收到了一個包解析錯誤。

考慮有兩個應用程序:Application1和Application2

我想從Application1調用Application2

以下是一些示例代碼:

Intent i = new Intent();
i.setAction(android.content.Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(fileName),"application/vnd.android.package-archive"); 
startActivity(i);

這里fileName = "file://data/data/package_name/files/Application1.apk";

我認為這段代碼會有所幫助:

Intent intent = new Intent(Intent.ACTION_RUN);
intent.setComponent(new ComponentName("<packet name>", "<class name>"));
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT);

if(list.size() > 0)
{
 Log.i("Log", "Have application" + list.size());
 startActivity(intent);
}
else
{
    Log.i("Log", "None application");
}

您是否嘗試啟動未安裝的應用程序? 看起來你正試圖通過將app1傳遞給sd卡上app2的.apk文件的位置來執行應用程序 - 這不起作用。 Android操作系統將知道如何在用戶安裝之后通過Intent調用app2(如果您可以調用任何位於SD卡上的任意代碼,請考慮安全風險)。

假設安裝了app1和app2,請查看appMan的AndroidManifest.xml文件。 該文件將指示它將響應哪種Intent

請參閱http://developer.android.com/guide/topics/intents/intents-filters.html#npex以獲得一個好例子。

如果您需要更多幫助,請向我們展示app2的AndroidManifest.xml文件。

Intent i4=new Intent(Intent.ACTION_MAIN);

PackageManager manager = getPackageManager();

i4 = manager.getLaunchIntentForPackage("com.apk");//apk name

i4.addCategory(Intent.CATEGORY_LAUNCHER);

startActivity(i4);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM