我正在创建一个白色标签的应用程序。我使用--rename-manifest-package选项通过aapt运行项目。
这让我写 com.foobar
并发布
com.foobar.demo 和 com.foobar.extended 版本将安装在同一台设备上。
但是,即使服务是通过权限android:permission =“@ string / permission_name”(每次安装更改)和android:exported =“false”设置的,每个应用程序都想调用其他应用程序服务!
即。当我启动 com.foobar.extended 时,我得到一个安全例外,因为它没有 com.foobar.demo 服务的权限!
似乎-rename-manifest-package不会更改服务意图过滤器,因此它们仍然是 com.foobar.services.X ,这意味着一个应用程序服务具有更高的优先级来处理意图。
如何防止此问题? (也许是一个startLocalService(),它不会在应用程序之外发送意图...)
谢谢,
约翰
答案 0 :(得分:0)
您尚未提供清单文件的副本,但我猜您在那里使用了绝对名称,而您应该使用相对名称。
而不是
<service android:name="com.foobar.demo.service" />
你应该使用
<service android:name=".service" />
(请注意,名称以句点开头)。