Android 2.3以降のプログラムでJava)で現在のランチャーのパッケージ名を取得するにはどうすればよいですか?
ホームインテントで PackageManager.resolveActivity() を使用できるはずだと思います。
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
ResolveInfo resolveInfo = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
String currentHomePackage = resolveInfo.activityInfo.packageName;
一般的に、 @ JesusFrekeに同意します PM resolveActivityを使用します
_Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
ResolveInfo resolveInfo = getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
_
ただし、正しいパッケージ名を取得するには、次を使用する必要があります
_resolveInfo.loadLabel(packageManager).toString()
_
または
_resolveInfo.activityInfo.applicationInfo.loadLabel(packageManager).toString()
_
ヒント:デフォルトセットがない場合、これは「Androidシステム」または「オープン」になる可能性があります。これは、一般的なシステムインテントレシーバーの場合と同じです。
ヒント:Webブラウザーを探している場合は、net.openid.appauth.browser.BrowserSelector#select()
( .7.1 + )を使用して、明示的なセットが1つもない場合でも、デフォルトのブラウザーを暗黙的に取得できます。