我想从我的应用程序中打开另一个已安装的应用程序,例如 Pandora。
这是代码:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("Pandora");
startActivity(LaunchIntent);
以上使我的代码崩溃,有人可以提供代码更正吗?
先感谢您。
我想从我的应用程序中打开另一个已安装的应用程序,例如 Pandora。
这是代码:
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("Pandora");
startActivity(LaunchIntent);
以上使我的代码崩溃,有人可以提供代码更正吗?
先感谢您。
您只是在激发意图并向操作系统说您希望某些应用程序打开并显示位于路径的文件。Android 会为您选择合适的应用程序(或要求用户选择可用的应用程序之一)
我相信您正在尝试打开 PDF 查看器。你需要的不是任何apk的路径,而是你要打开的PDF文件的路径。Android 系统会自动确定为 Intent 中指定的参数调用哪个应用程序。
我认为您想要做的是通过其数据包名称调用应用程序(您需要弄清楚,但这应该很容易)
PackageManager pm = getPackageManager();
try {
String packageName = "com.example.package";
Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
startActivity(launchIntent);
}
catch (Exception e1){}
如果已安装,那应该会打开另一个应用程序。
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"/>