防止aapt之后的服务冲突--重命名清单包



我正在创建一个白色标签的应用程序。我使用--rename manifest包选项通过aapt运行该项目。

这让我可以写com.foobar

并发布

com.foobar.democom.foobar.extended版本将安装在同一设备上。

然而,即使服务是通过权限android:permission="@string/permission_name"(每次安装都会更改)和android:exported="false"设置的,每个应用程序都想调用其他应用程序服务!

也就是说,当我启动com.foobar.extended时,我得到了一个安全异常,因为它没有.com.foobar.demo服务的权限!

rename manifest包似乎不会更改服务意图过滤器,因此它们仍然是com.foobar.services.X,这意味着一个应用程序服务在处理意图时具有更高的优先级。

如何防止此问题?(也许是一个startLocalService(),它不会在应用程序之外发送意图…)

谢谢,

约翰·

您还没有提供清单文件的副本,但我猜您在那里使用了绝对名称,而应该使用相对名称。

代替

<service android:name="com.foobar.demo.service" />

你应该使用

<service android:name=".service" />

(请注意,名称以句点开头)。

相关内容

  • 没有找到相关文章

最新更新