Android什么是代码打开不同的apk的应用程序路径?

时间:2012-10-06 16:18:09

标签: java android android-intent

我想从我的应用程序中打开另一个已安装的应用程序,例如Pandora。

以下是代码:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("Pandora");
    startActivity(LaunchIntent);

上面的代码崩溃了,有人可以提供代码修正吗?

提前谢谢。

4 个答案:

答案 0 :(得分:0)

你只是激发意图,并向操作系统说你想要一些应用程序打开并显示位于路径的文件。 Android会为您选择合适的应用程序(或要求用户选择一个可用的应用程序)

答案 1 :(得分:0)

我相信您正在尝试打开PDF查看器。您需要的不是任何apk的路径,而是您要打开的PDF文件的路径。 Android系统将自动确定要为intent中指定的参数调用哪个应用程序。

答案 2 :(得分:0)

我认为您想要做的是通过其数据包名称调用应用程序(您需要弄清楚,但这应该很容易)

PackageManager pm = getPackageManager();
try {
String packageName = "com.example.package";
Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
startActivity(launchIntent);
}
catch (Exception e1){}

如果安装了其他应用程序,则应该打开它。

答案 3 :(得分:0)

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

权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>