我的Android应用程序突然需要未在AndroidManifest.xml中设置的权限.为什么?

Bja*_*sen 5 android android-permissions

我有一个应用程序,在过去几年只有微小的变化.昨天我向Google Play发布了一个修正错误,并注意到我的应用突然需要5个新权限:

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.GET_ACCOUNTS
  • android.permission.READ_EXTERNAL_STORAGE maxSdkVersion = 18
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE

我没有对AndroidManifest.xml进行任何更改,因此没有列出这5个权限.

我正在使用Google的结算库(com.android.billing)进行应用内购买.这可能已由Android Studio自动更新.

我也升级了这些库:

  • com.android.support:appcompat-v7:22.1.1 - > 22.2.0
  • com.android.support:support-v4:22.1.1 - > 22.2.0
  • com.google.android.gms:play-services:7.3.0 - > 7.5.0

有谁知道为什么会这样?

更新与答案

@ ahmad-nawaz是对的,他的回答让我想出了这一点.这是我的问题的更详细的答案:

需要额外权限的图书馆是Google Play服务.

在Google Play Services 6.5及更高版本中,您可以(并且可能应该)定义您需要的特定API,而不是仅导入整个包.

就我而言,我只是使用了play-services-analytics,所以我在build.gradle中更改了它

compile 'com.google.android.gms:play-services:7.5.0'
Run Code Online (Sandbox Code Playgroud)

对此

compile 'com.google.android.gms:play-services-analytics:7.5.0'
Run Code Online (Sandbox Code Playgroud)

在此更改之后,原始问题中提到的所有5个权限都消失了.

以下是Google Play服务的各个API的完整列表:https://developers.google.com/android/guides/setup#split

Ahm*_*waz 4

这些来自您使用的库。Android studio 将库权限合并到应用程序中。