0

メール、連絡先などのいくつかのデフォルトの Android アプリケーションの正規名を知る必要があります。正規の名前を使用して開始できるようにしたい。

お気に入り

Intent i = new Intent("com.pacakge.canonicalname");

デフォルトの Android アプリの標準的なパッケージ名のリストを取得できるアイデアはありますか?

ありがとう

4

1 に答える 1

1

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.");
}

私はこの種のことを自分で行うことを検討していますが、このコードを試していないので、注意して使用してください。

編集:今晩試してみましたが、解決策はあなたが探しているものではないかもしれません. これらのアプリの表示名 (技術的にはアプリケーション ラベルと呼ばれます) のみから開始すると仮定すると、デバイスにインストールされているすべてのアプリを実際に調べて、そのアプリケーション ラベルを探す必要がある場合があります。ソリューションをブログに投稿しましたので、ご覧ください

于 2012-11-27T18:49:27.167 に答える