Android Map V2 - 为什么选择MAPS_RECEIVE权限

Mah*_*ran 32 android android-maps-v2

将此视为维基问题.

当我设置我的项目以支持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"/>
Run Code Online (Sandbox Code Playgroud)

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

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

这个权限不能照顾这些东西吗?

<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
Run Code Online (Sandbox Code Playgroud)

我认为使用自定义权限是为了允许其他应用启动/使用我们应用的服务/资源.

And*_*son 80

对于未来的访客:

现在完全没有这个权限.Google Play服务3.1.59的最新更新使其毫无用处.结果,它可以被删除.

资源


Jer*_*man 6

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

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

  • 对于未来的访问者,请查看@Exception-al回答:"此权限现在完全没有必要.Google Play Services 3.1.59的最新更新使其无用.因此,它可以删除." (3认同)

Man*_*sha 5

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

  <permission
          android:name="package_name.permission.MAPS_RECEIVE"
          android:protectionLevel="signature"/>
  <uses-permission android:name="package_name.permission.MAPS_RECEIVE"/>
Run Code Online (Sandbox Code Playgroud)

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