Android Map V2 - 为什么MAPS_RECEIVE权限

问题描述:

将此视为wiki问题。Android Map V2 - 为什么MAPS_RECEIVE权限

虽然我设置了我的项目以支持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"/> 

为什么我们要从应用程序本身创建和使用权限?

谷歌播放服务应用程序是否使用此权限进行交互?

此权限不能处理这些事情吗?

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

我以为使用自定义权限是为了让其他应用程序启动/使用我们的应用程序的服务/资源。

+0

我只是好奇我们为什么设置此权限。顺便说一下,我的项目在Map V2上运行良好。 – 2013-02-12 13:26:38

+1

@MontyThreeCard yes ..我还没有关注这篇文章 – 2013-09-23 04:40:57

对于未来的用户:

此权限是现在完全没有必要的。 Google Play Services 3.1.59的最新更新为 ,因此无效。因此,可以删除 。

source

这与使用Google Cloud Messaging (GCM)及其C2D_MESSAGE权限时看到的模式相同。我们的想法是保护应用程序中的端点(例如广播接收器),以便其他组件(可能是Maps API的一部分)可以安全地联系它(否则,其他应用程序可能会使用相同的意图过滤器模拟您的应用程序)。

在这种情况下,Maps API会在内部设置这样一个端点(对您来说是透明的),并且可以使用此权限来对此端点进行模拟(因为这样做会需要许可权限,受您的应用程序签名保护)。

+2

对于未来的访问者来看看@ Exception-al答案:“现在完全没有这个权限,Google Play Services 3.1.59的最新更新使它无用。因此,它可以被删除。“ – Chiara 2013-08-16 12:39:26

我发现,使用调试证书时,此权限仍然需要。当我导出并签署我的应用程序时,它运行良好,但在使用调试证书时它不起作用。我拥有与同一个密钥关联的调试证书和应用证书的MD5。当我最终添加这些额外的权限时,它工作。我正在使用运行4.4的一切最新的Moto X。

此权限指定您的软件包名称。 即

<permission 
      android:name="package_name.permission.MAPS_RECEIVE" 
      android:protectionLevel="signature"/> 
    <uses-permission android:name="package_name.permission.MAPS_RECEIVE"/> 

因此,google API只允许您的项目接收地图。 权限告诉在哪里使用API​​。

+0

此权限在3.1.59中被删除..不再需要了.. – 2014-02-10 07:01:37