In che modo Nova gestisce questo? Sto letteralmente cercando di fare esattamente la stessa cosa: fornire agli utenti un pulsante da premere per cancellare e scegliere il loro nuovo launcher predefinito.Cancellazione e impostazione dell'applicazione domestica predefinita
sono in grado di ottenere il nome di default app e visualizzarla:
private String getPrefered(Intent i) {
PackageManager pm = this.getActivity().getPackageManager();
final ResolveInfo mInfo = pm.resolveActivity(i, 0);
return (String) pm.getApplicationLabel(mInfo.activityInfo.applicationInfo);
}
dove Intent i
è
Intent home = new Intent("android.intent.action.MAIN");
home.addCategory("android.intent.category.HOME");
Poi chiamo il ResolveActivity sistema,
private void makePrefered() {
Intent selector = new Intent("android.intent.action.MAIN");
selector.addCategory("android.intent.category.HOME");
selector.setComponent(new ComponentName("android", "com.android.internal.app.ResolverActivity"));
startActivity(selector);
}
Il picker viene visualizzato e funziona correttamente, ma in realtà non imposta o cancella qualsiasi v alori. Durante il debug, sembra che mi manchi qualche extra? Quando chiamo il metodo makePrefered
, ricevo il seguente messaggio di log,
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=android/com.android.internal.app.ResolverActivity u=0} from pid 22641
Quando uso l'attuazione Nova vedo tutto questo però,
I/PackageManager( 602): Result set changed, dropping preferred activity for Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 (has extras) } type null
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=android/com.android.internal.app.ResolverActivity (has extras) u=0} from pid 22905
I/ActivityManager( 602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.mycolorscreen.canvas/.Launcher (has extras) u=0} from pid 22905
- Come posso arrivare lì e vedere cosa viene inviato insieme a quel pacchetto?
- Come posso cancellare l'app preferita? Non dirmi che non puoi, ho visto abbastanza di quelle risposte. Nova lo fa e lo fa esattamente come vorrei.
Ho provato questo in 4.2.2 e non funziona ... Solo quando si installa un nuovo Home Launcher il comportamento è quello che hai descritto. – TacB0sS
Dunno. Havent ci ha provato da un po '. – r2DoesInc
Ho provato su 4.2.2 con il mio Nexus 4, e funziona. –