【问题标题】:Permission usage in AndroidAndroid中的权限使用
【发布时间】:2012-08-06 17:16:11
【问题描述】:

我需要保证,只有我的应用可以向我的 IntentService 广播意图。如何使用 Android 权限来实现?

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

【问题讨论】:

  • "这个属性(android:exported)并不是限制一个服务暴露给其他应用程序的唯一方法。你也可以使用一个权限来限制可以与该服务交互的外部实体(请参阅权限属性)。”如何使用权限限制访问我的服务?

标签: android android-intent permissions


【解决方案1】:

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

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

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

然后使用

在您的 BroadcaseReceiver 中强制执行此权限
android:permission="string"  

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

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

【讨论】:

    【解决方案2】:

    请参考:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-04-12
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      相关资源
      最近更新 更多