每个Google Play服务组件需要哪些权限?
问题描述:
正如我在Why are permissions being automatically added to my AndroidManifest when including Google Play Services library中发现的,各种Google Play服务组件从Google Play服务7.5开始,为您的应用隐式添加权限。但显然不是所有组件都需要相同的权限 - 例如,play-services-games:7.8.0不需要任何权限。每个Google Play服务组件需要哪些权限?
是否有一种简单的方法可以告诉特定Google Play服务组件将添加哪些权限?
答
访问$ANDROID_SDK/extras/google/m2repository/com/google/gms
。在那里,选择你想要的工件(例如,play-services-maps
)和版本(例如,8.1.0
)。在您最喜欢的ZIP实用程序中打开AAR,并查看在那里发布的AndroidManifest.xml
文件,查看是否有<uses-permission>
元素。然后,打开POM文件,查看它们之间的依赖关系,然后为这些依赖项重复AAR的过程。
答
如this excellent article中所述,您可以在此处看到在构建过程中创建的最终清单文件;
app/build/intermediates/manifests/full/debug/AndroidManifest.xml
您还可以看到一个报告,显示每个权限的来源;
app/build/outputs/logs/manifest-merger-debug-report.txt
你可以用这样一行在你的清单以删除你想要的任何额外的权限(但要小心,你可能会破坏功能!);
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove"/>