メール、連絡先などのいくつかのデフォルトの Android アプリケーションの正規名を知る必要があります。正規の名前を使用して開始できるようにしたい。
お気に入り
Intent i = new Intent("com.pacakge.canonicalname");
デフォルトの Android アプリの標準的なパッケージ名のリストを取得できるアイデアはありますか?
ありがとう
メール、連絡先などのいくつかのデフォルトの Android アプリケーションの正規名を知る必要があります。正規の名前を使用して開始できるようにしたい。
お気に入り
Intent i = new Intent("com.pacakge.canonicalname");
デフォルトの Android アプリの標準的なパッケージ名のリストを取得できるアイデアはありますか?
ありがとう
PackageManager クラスには currentToCanonicalPackageNames(String[] names) と呼ばれるメソッドがあり、あなたが求めていることを行うために使用できると思われます。次のようなものです:
String[] names = {"Email","Contacts"};
try{
String[] canonicalNames = context.getPackageManager().currentToCanonicalPackageNames(names);
//do whatever you want with canonicalNames, e.g. launch the email app,
Intent email = context.getPackageManager().getLaunchIntentForPackage(canonicalNames[0]);
context.startActivity(email);
}catch(NameNotFoundException e){
Log.d("MY ACTIVITY NAME", "Package name(s) not found.");
}
私はこの種のことを自分で行うことを検討していますが、このコードを試していないので、注意して使用してください。
編集:今晩試してみましたが、解決策はあなたが探しているものではないかもしれません. これらのアプリの表示名 (技術的にはアプリケーション ラベルと呼ばれます) のみから開始すると仮定すると、デバイスにインストールされているすべてのアプリを実際に調べて、そのアプリケーション ラベルを探す必要がある場合があります。ソリューションをブログに投稿しましたので、ご覧ください。