我正在创建一个白色标签的应用程序。我使用--rename manifest包选项通过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包似乎不会更改服务意图过滤器,因此它们仍然是com.foobar.services.X,这意味着一个应用程序服务在处理意图时具有更高的优先级。
如何防止此问题?(也许是一个startLocalService(),它不会在应用程序之外发送意图…)
谢谢,
约翰·
您还没有提供清单文件的副本,但我猜您在那里使用了绝对名称,而应该使用相对名称。
代替
<service android:name="com.foobar.demo.service" />
你应该使用
<service android:name=".service" />
(请注意,名称以句点开头)。