2015-08-05 13 views
5

Ich füge eine Bibliothek in mein Projekt ein. Es kommt verpackt als AAR. Aber es hat eine BroadcastReceiver, die auf einen BOOT_COMPLETED startet, startet einen Dienst. Ich möchte dieses Verhalten nicht in meiner App. Ich möchte, dass es immer startet, wenn die App startet. (Dieser Teil ist bereits durch die AAR gemacht, ich nehme an, falls der Benutzer die App gestoppt hat).Ausschließen oder Überschreiben eines AAR-Manifests

Gibt es eine Möglichkeit, ihr Manifest zu ändern? oder spezifiziere in Gradle, um ihr Manifest nicht zusammenzuführen (in dem ich ihre Aktivitäten in meinem eigenen Manifest erklären müsste, denke ich); oder dessen Manifest außer Kraft zu setzen und ein android:enabled="false für die BroadcastReceiver „hat?

Ich würde es auch im Manifest machen will oder Gradle, denn wenn ich es tue programmatisch und wenn sie die App installieren, aber es nie öffnen, um die Bibliothek Service beginnen würde beim nächsten Mal automatisch der Benutzer neu startet ihr Telefon.

Antwort

4

Sie könnten wieder erklären ihre BroadcastReceiver in Ihrem Manifest und verwenden android:enabled="false" gefolgt von tools:node = "replace".

auch wenn Sie später aktivieren möchten, können Sie mithilfe von die setComponentEnabledSetting() Methode innerhalb von PackageManager.

+1

Ah nett! das scheint zu funktionieren, dies führt mich auch zu 'tools: node:" remove "', was höchstwahrscheinlich das ist, was ich benutzen werde. Danke vielmals! – chekemp

+0

Elegante Lösung. – funkybro

0

Sie können nur die AAR-Datei mit WinRAR oder etwas anderes öffnen und die Manifest-Datei selbst bearbeiten. AARs sind einfach gepackte ZIP-Dateien, genau wie APKs.

In der Tat könnte Android Studio dies anmutiger handhaben, aber ich weiß nicht, ob dies noch möglich ist

Verwandte Themen