2015-08-05 15 views
5

Aggiungo una libreria al mio progetto. Viene fornito in confezione come AAR. Ma ha un BroadcastReceiver che ascolta un BOOT_COMPLETED avvia un servizio. Non voglio questo comportamento nella mia app. Mi piacerebbe che iniziasse tutte le volte che l'app inizia. (Questa parte è già eseguita tramite lo AAR, presumo nel caso in cui l'utente abbia interrotto l'app).Esclusione o sovrascrittura di un manifest AAR

C'è un modo per modificare il manifest; o specificare in Gradle di non unire il loro manifest (in cui dovrei dichiarare le loro attività nel mio manifest, credo); o per ignorare il loro manifesto e hanno una android:enabled="false per il BroadcastReceiver "?

anche io vorrei farlo nel manifesto o Gradle, perché se lo faccio a livello di codice e se installare l'app, ma non aprirlo, la biblioteca servizio sarebbe avviare automaticamente la prossima volta che l'utente riavvia il loro telefono cellulare.

risposta

4

si potrebbe ri-dichiarare la loro BroadcastReceiver nel vostro manifesto e utilizzare android:enabled="false" seguito da tools:node = "replace".

anche se in seguito si desidera attivare esso, è possibile utilizzando il metodo setComponentEnabledSetting() all'interno di PackageManager.

+1

Ah, bello! questo sembra funzionare, questo mi porta anche a 'tools: node:" remove "', che è molto probabilmente quello che userò. Molte grazie! – chekemp

+0

Soluzione elegante. – funkybro

0

È sufficiente aprire il file AAR con WinRAR o altro e modificare autonomamente il file manifest. Gli AAR sono semplicemente file ZIP compressi, proprio come gli APK.

Infatti, Android Studio è in grado di gestirlo con più garbo, ma non so se è ancora possibile