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

时间:2015-06-05 07:33:12

标签: 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'

到这个

compile 'com.google.android.gms:play-services-analytics:7.5.0'

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

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

1 个答案:

答案 0 :(得分:3)

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