Come posso ottenere il nome del pacchetto del programma di avvio corrente in Android 2.3 e versioni successive in modo programmatico in Java?Come posso ottenere il nome del pacchetto del programma di avvio corrente in Android 2.3 e versioni successive?
risposta
Penso che dovresti essere in grado di utilizzare PackageManager.resolveActivity(), con l'intento di casa.
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;
Grazie, funziona bene. – HardCoder
Se non c'è un launcher "predefinito" selezionato, restituisce solo "android". Non è un caso comune, ma succede. – auval
Ricorda che restituirà NULL se non c'è corrispondenza e otterrai un NPE all'ultima riga! – JacksOnF1re
context.getPackageName() ;? –
Non fornisce solo il nome del pacchetto dell'app corrente? – HardCoder