我正在阅读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
级别在这里做什么?
我定义了一个权限,除了我之外不要让任何人使用它!
答案 0 :(得分:3)
要求程序包级别权限仅标识要传递邮件的特定应用程序。
来自docs
你的+&#34; .permission.C2D_MESSAGE&#34;允许 防止其他Android应用程序注册和接收 Android应用程序的消息。权限名称必须完全正确 匹配此模式 - 否则Android应用程序将无法接收 消息
有关 例如考虑这些权限就像电话号码和android是建筑物。建立呼叫链路时可能有太多人在建设,但每个接收器都有自己唯一的电话号码,在此基础上,呼叫连接到该特定接收器。
签名级别:确认您的系统上的应用程序是由您在SHA-1
上使用的GCM
密钥的系统签名的安慰。如果此条件匹配,将立即授予C2D
权限。