アプリから Pandora などの別のインストール済みアプリを開きたいです。
コードは次のとおりです。
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("Pandora");
startActivity(LaunchIntent);
上記は私のコードをクラッシュさせます。誰かがコード修正を提供できますか?
前もって感謝します。
アプリから Pandora などの別のインストール済みアプリを開きたいです。
コードは次のとおりです。
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("Pandora");
startActivity(LaunchIntent);
上記は私のコードをクラッシュさせます。誰かがコード修正を提供できますか?
前もって感謝します。
あなたはただインテントを起動し、パスにあるファイルを開いて表示するアプリケーションが欲しいとOSに言います。Androidはあなたに適したアプリケーションを選択します(またはユーザーに利用可能なアプリの1つを選択するように依頼します)
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"/>
PDFビューアを開こうとしていると思います。必要なのは、apk へのパスではなく、開きたい PDF ファイルへのパスです。Android システムは、インテントで指定された引数に対してどのアプリケーションを呼び出すかを自動的に判断します。
あなたがしたいことは、パケット名でアプリケーションを呼び出すことだと思います(それを理解する必要がありますが、それは簡単なはずです)
PackageManager pm = getPackageManager();
try {
String packageName = "com.example.package";
Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
startActivity(launchIntent);
}
catch (Exception e1){}
インストールされている場合は、他のアプリケーションが開きます。