我的安卓应用突然要求权限,而这些权限在AndroidManifest.xml文件中未被设置。为什么?

5
我有一个应用程序,过去几年只进行了小的更改。昨天,我发布了一个修复错误的版本到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服务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


这真的帮了我,我有相同的问题,我只是导入了play-services-analytics而不是整个包,突然间获取帐户和使用帐户的权限就消失了 :) - hadi
1个回答

4

这些是来自你所使用的库。Android Studio将库的权限合并到应用程序中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接