将此视为维基问题。
当我设置我的项目以支持Map V2时,已经有一个步骤来添加MAPS_RECEIVE权限。
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
为什么我们要从应用本身创建和使用权限?
Google Play服务应用是否使用此权限进行互动?
此权限无法处理这些事情吗?
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
我认为使用自定义权限是为了允许其他应用启动/使用我们应用的服务/资源。
答案 0 :(得分:77)
答案 1 :(得分:6)
这与使用Google Cloud Messaging (GCM) C2D_MESSAGE
权限时看到的模式相同。我们的想法是保护应用程序中的端点(例如广播接收器),以便其他一些组件(可能是Maps API的一部分)可以安全地联系它(否则,另一个应用程序可以通过使用相同的意图过滤器来模拟您的应用程序)。
在这种情况下,Maps API会在内部设置这样一个端点(对您透明),并且可以使用此权限来模拟此端点(因为这样做需要权限,这是受您的申请签名保护。)
答案 2 :(得分:5)
此权限指定您的包名称。 即。
<permission
android:name="package_name.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="package_name.permission.MAPS_RECEIVE"/>
因此,谷歌API只允许您的项目接收地图。 该权限告知了API的使用位置。
答案 3 :(得分:3)
我发现使用调试证书时仍然需要此权限。当我导出并签署我的应用程序时它工作正常,但是当我使用调试证书时它不起作用。我的MD5用于与相同密钥关联的调试证书和应用程序证书。当我最终添加这些额外的权限时,它工作。我正在使用运行4.4的Moto X,其中包含最新的所有内容。