各位开发人员!
我的应用程序中有一个同步适配器和相应的同步服务.根据Google示例代码,我已声明了所有内容,包括同步服务.更大的图片看起来像这样:
<service
android:name="com.myapp.SyncService"
android:exported="true"
android:process=":sync">
<intent-filter>
<action
android:name="android.content.SyncAdapter"/>
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
</service>
Run Code Online (Sandbox Code Playgroud)
虽然将android:exported属性设置为true服务(使Android系统能够到达它)是有意义的,但我对如何在访问权限方面将其束缚有点困惑.我不希望除我的应用程序和Android系统之外的任何人都可以访问该服务.
也许有点天真我已经为此创建了自己的许可:
<permission
android:name="com.myapp.permission.SYNC_ADAPTER"
android:protectionLevel="signatureOrSystem" />
Run Code Online (Sandbox Code Playgroud)
但是阅读一下这个protectionLevel让我更加惊讶.谷歌说:
请避免使用此选项[...]"signatureOrSystem"权限用于某些特殊情况,其中多个供应商将应用程序内置到系统映像中,并且需要明确共享特定功能,因为它们是一起构建的.
描述的场景远非我的用例.那么问题仍然存在:
如何保护我的同步服务,以便Android系统(但没有第三方应用程序)可以访问它?
任何澄清将不胜感激!
看起来没有 SyncAdapter 权限。我猜我们可以放心地忽略这个错误。请参阅此处提交的错误:https://code.google.com/p/android/issues/detail?id =37280
| 归档时间: |
|
| 查看次数: |
776 次 |
| 最近记录: |