正如我在Why are permissions being automatically added to my AndroidManifest when including Google Play Services library中发现的那样,各种Google Play服务组件从Google Play Services 7.5开始隐式添加对您应用的权限。但显然并非所有组件都需要相同的权限 - 例如,play-services-games:7.8.0并不需要任何权限。
是否有一种简单的方法可以说明特定Google Play服务组件将添加哪些权限?
答案 0 :(得分:2)
访问$ANDROID_SDK/extras/google/m2repository/com/google/gms
。在那里,选择您想要的工件(例如play-services-maps
)和版本(例如8.1.0
)。在您喜欢的ZIP实用程序中打开AAR,查看其中发布的AndroidManifest.xml
文件,以查看是否有<uses-permission>
个元素。然后,打开POM文件,查看它们的依赖关系,并为这些依赖关系重复AAR的过程。
答案 1 :(得分:1)
如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"/>