私が開発しているこのアプリでは、すでに電話にインストールされている別のアプリをロード/呼び出す必要があります。これは私自身の個人的な使用のみを目的としたアプリケーションなので、他のアプリがインストールされているかどうかを確認する必要はありません。インストールされていることはわかっています。
私はこの問題を何時間もグーグルで検索しましたが、うまくいくものが見つかりません。パッケージ名とクラス名を見つけるためのガイドラインが本当に悪いからです。
Cmdとadbを介して、呼び出したいアプリケーションに関する情報が次のとおりであることがわかりました:package:/data/app/com.soundcloud.Android-1.apk=com.soundcloud.Android(まさにそれですcmdウィンドウで言った。)
私はこのようなことを試みました:
Intent i = new Intent();
i.setClassName("/data/app/com.soundcloud.Android-1.apk", "com.soundcloud.Android");
startActivity(i);
しかし、私のアプリは代わりにクラッシュします。誰かがこれがアプリを呼び出すことができると言ったので、私は上記のコードを使用しました:
Intent i = new Intent();
i.setClassName("<package_name>","<Class Name(with package name)>");
startActivity(i);
誰かが本当に何を書くべきか知っていますか?
追伸:私自身のアプリは、呼び出されたアプリで何が起こっているかについての情報を必要としません。
PackageManagerを使用して、パッケージのインテントを取得します。
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.example.package");
startActivity(intent);