我想从我的应用程序中打开另一个已安装的应用程序,例如Pandora。
以下是代码:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("Pandora");
startActivity(LaunchIntent);
上面的代码崩溃了,有人可以提供代码修正吗?
提前谢谢。
答案 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"/>