排除或覆盖AAR清单

时间:2015-08-05 16:53:31

标签: android gradle android-manifest aar

我在我的项目中添加了一个库。它打包为AAR。但它有BroadcastReceiver监听BOOT_COMPLETED启动服务。我不想在我的应用程序中出现此行为。我希望它能在应用程序启动时启动。 (这部分已经通过AAR完成,我假设用户强制停止了应用程序。)

有没有办法修改他们的清单;或者在Gradle中指明不要合并他们的清单(我认为我必须在我自己的清单中宣布他们的活动);或者覆盖他们的清单并为android:enabled="false设置BroadcastReceiver

我也希望在清单或Gradle中执行此操作,因为如果我以编程方式执行此操作,并且如果他们安装应用程序但从未打开它,那么下次用户重新启动手机时,库服务将自动启动

2 个答案:

答案 0 :(得分:5)

您可以在清单中重新声明他们的BroadcastReceiver并使用android:enabled="false",然后使用tools:node = "replace"

此外,如果您以后想要启用它,则可以使用setComponentEnabledSetting()内的PackageManager方法。

答案 1 :(得分:0)

您只需使用WinRAR或其他内容打开AAR文件,然后自行编辑清单文件。 AAR只是简单打包的ZIP文件,就像APK一样。

事实上,Android Studio可以更优雅地处理这个问题,但我不知道这是否可行

相关问题