我为什么要在我的Android应用程序中为GCM定义权限标记?

时间:2016-09-21 04:37:47

标签: android google-cloud-messaging manifest android-permissions

我正在阅读GCM个文档,有一件事让我问这个问题:为什么我需要在清单中定义权限标记,而不是使用我定义的权限?

以下是代码:

<permission android:name="<your-package-name>.permission.C2D_MESSAGE" android:protectionLevel="signature" />

<uses-permission android:name="<your-package-name>.permission.C2D_MESSAGE" />

不应该在服务应用中定义此权限,我只需添加uses-permission

如果需要使用permission标记,signature级别在这里做什么?

我定义了一个权限,除了我之外不要让任何人使用它!

GCM

1 个答案:

答案 0 :(得分:3)

要求程序包级别权限仅标识要传递邮件的特定应用程序。

来自docs

  

你的+&#34; .permission.C2D_MESSAGE&#34;允许   防止其他Android应用程序注册和接收   Android应用程序的消息。权限名称必须完全正确   匹配此模式 - 否则Android应用程序将无法接收   消息

有关 例如考虑这些权限就像电话号码和android是建筑物。建立呼叫链路时可能有太多人在建设,但每个接收器都有自己唯一的电话号码,在此基础上,呼叫连接到该特定接收器。

签名级别:确认您的系统上的应用程序是由您在SHA-1上使用的GCM密钥的系统签名的安慰。如果此条件匹配,将立即授予C2D权限。