【问题标题】:Does permission need to have explicit package name in it?权限是否需要有明确的包名?
【发布时间】:2015-06-17 08:13:52
【问题描述】:

我试图在我的应用中添加对 GCM 的支持,但对 Manifest 中的权限有疑问(基于 this SO's comment)。

是否总是需要在<permission/> 标签中指定包名?或者在<manifest> 标签中拥有package 属性就足够了吗?

【问题讨论】:

  • 不要使用不相关的标签。你的问题与xml 无关,所以我删除了这个标签。

标签: android android-studio permissions android-manifest android-gradle-plugin


【解决方案1】:

对于 GCM,您必须遵循以下模式:

一个 applicationPackage + ".permission.C2D_MESSAGE" 权限 阻止其他 Android 应用程序注册和接收 Android 应用程序的消息。权限名称必须完全匹配 这种模式——否则 Android 应用程序将不会收到 消息。

作为documented here

对于其他权限,您可以使用不太严格的策略,但在其中使用包名更安全。

【讨论】:

  • 那么在AndroidStudio 中使用<permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 就足够了吗?
  • 您还需要 <uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"> 作为文档中提到的(请参阅我的答案中的链接)
【解决方案2】:

您可以添加:

<uses-permission android:name="android.permission.YOURPERMISSION" />

到您的清单中,如果您想知道的话,您不需要添加包名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    • 1970-01-01
    • 2011-03-09
    • 2019-07-11
    相关资源
    最近更新 更多