0

我需要保证,只有我的应用程序才能向我的 IntentService 广播意图。如何使用 Android 权限进行设置?

我在 gcm android 库中看到了类似的权限用法,但我不明白它是如何工作的。

4

2 回答 2

3

如果您希望您自己的任何应用程序可以使用此服务(多个应用程序)但其他应用程序不能,您将需要实现基于签名的权限。

声明自己的自定义签名权限

<permission android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel="signature" />

然后使用 BroadcaseReceiver 在您的 BroadcaseReceiver 中强制执行此权限

android:permission="string"  

在您的接收器中添加标签,甚至您可以在任何其他组件(如活动等)中执行此操作。

然后在您想要访问上述功能的其他应用程序中,可以在其清单中声明使用权限。请记住:您的第二个应用程序必须由相同的证书签名才能使用基于自定义签名的权限。在此处阅读有关权限的更多信息:http: //developer.android.com/guide/topics/security/permissions.html

于 2012-08-06T17:31:55.623 回答
0

请参阅:

http://developer.android.com/guide/components/services.html

如果您计划仅在本地使用您的服务(其他应用程序不使用它),那么您不需要(也不应该)提供任何意图过滤器。如果没有任何意图过滤器,您必须使用明确命名服务类的意图来启动服务。

只是不要在清单中放置任何 Intent 过滤器......

于 2012-08-06T17:23:32.657 回答