2010-07-07 16 views

risposta

9

L'ho fatto con l'avvio di ICS. Devi anche fare un bel numero di modifiche al codice per farlo compilare come una normale app perché utilizza molte API interne private (nonostante ciò che Google potrebbe aver implicato). È inoltre necessario modificare il nome del pacchetto. Esistono due limitazioni:

  1. C'è un filtro chiamato TableMaskFilter che non è disponibile per le normali app. Penso che questo consenta al cassetto delle app di essere semi-trasparente, ma ho rimosso gli usi e sembra a posto.

  2. Più in particolare, sembra che non vi sia alcun modo di replicare l'esperienza di aggiunta di widget poiché richiede un'autorizzazione che solo le app di sistema possono avere. See this question.

In ogni caso, ho messo la mia fonte here. Compila e funziona sul Galaxy S2 4.0.3 ufficiale, ma se provi ad aggiungere widget, si bloccherà.

Nota: quando si modifica il nome del pacchetto, ci sono dei posti che il refactor di Eclipse non nota (ad esempio layout XML). Ti consiglio di effettuare una ricerca/sostituzione di testo globale.

+0

Come hai compilato il launcher come applicazione esterna? – arts777

+0

Modificato il codice. Leggi la mia risposta. – Timmmm

+1

@Timmmm Un grande sforzo ... Grazie per aver condiviso. –

7

Lo standard Launcher è open source quindi è possibile prenderlo e modificarlo nel modo desiderato. Affinché la tua app possa essere utilizzata come schermata iniziale, dovrai specificare lo Intent filter corretto nel tuo AndroidManifest.xml e l'utente dovrà scegliere la tua app quando preme il pulsante Home. Perché non prendi quel codice, giocaci e torna quando hai più domande e più un'idea di ciò che vuoi cambiare.

+0

grazie, ho afferrato la sorgente del Launcher, se voglio cambiare il tema di Android, o altre persone possono cambiare tema usando la mia app, dove e come modificare il Launcher? – pengwang

+0

Il programma di avvio standard non verrà compilato come app SDK per impostazione predefinita. Devi modificare il codice. Questo in realtà non è troppo difficile per il Launcher ... ma le app di SMS e Calendar mi hanno richiesto molto più tempo! – Timmmm

+0

@Robby Ho aggiunto filtri nella mia attività in manifest ma ancora quando premo il tasto home, mi riporta alla schermata iniziale del launcher anche se ho impostato la mia app come launcher predefinito. –

4

Qui ho trovato una versione stabile Launcher2

ho condivisione che GitHub pronti contro termine. HERE

WIKI di questo progetto:

Questo progetto contiene il codice per l'applicazione di avvio che viene fornito con Android Jelly Bean (API 16).

Alcune modifiche minori sono state richieste da questo codice sorgente per rimuovere l'uso di API private. Queste modifiche sono state contrassegnate da "// AOSP Change"

Problemi correlati