Play商店说应用程序使用GET_ACCOUNTS权限,但事实并非如此

时间:2016-12-20 12:57:56

标签: android android-permissions

最近,谷歌开始使用android.permission.GET_ACCOUNTS抱怨我的应用程序(在Play商店的Alpha中),因此需要链接到“有效的隐私政策”。现在我没有那个,因为我的应用程序仍处于alpha状态,但更奇怪的是我在我的Manifest中不需要android.permission.GET_ACCOUNTS权限。

我列出了我在下面要求的权限,

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<permission android:name="xxx.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="xxx.permission.C2D_MESSAGE" />

<permission android:name="xxx.permission.INTERNAL_NOTIFICATION" android:protectionLevel="signature" />
<uses-permission android:name="sxxx.permission.INTERNAL_NOTIFICATION" />

以及我的Gradle依赖项:

apply plugin: 'com.google.gms.google-services'

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])

// Support Library
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:recyclerview-v7:23.2.0'
compile 'com.android.support:cardview-v7:23.2.0'

// Google Play Services (Push notifications)
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.google.android.gms:play-services-ads:8.3.0'
compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services-gcm:8.3.0'

// Calligraphy (Font)
compile 'uk.co.chrisjenx:calligraphy:2.2.0'

// Smack (XMPP client)
compile 'org.igniterealtime.smack:smack-android:4.1.1'
compile 'org.igniterealtime.smack:smack-tcp:4.1.1'

// AndroidPlot (Charts)
compile 'com.androidplot:androidplot-core:0.6.1'

// Test Targets
testCompile('junit:junit:4.12', 'org.mockito:mockito-core:1.9.5')
testCompile 'org.json:json:20140107'

如果有人能指出android.permission.GET_ACCOUNTS来自何处,我很感激。

3 个答案:

答案 0 :(得分:1)

删除此依赖项:

compile 'com.google.android.gms:play-services:8.3.0'

这是(a)多余的,(b)包括大量您不使用的服务,这些服务大大夸大了您的应用程序的大小和方法计数,并且(c)将包括每个游戏服务的权限集 - 包括GET_ACCOUNTS

您的其他播放服务依赖项将引入他们需要的核心播放服务库。

答案 1 :(得分:0)

在Android Studio的android.permission.GET_ACCOUNTS(Ctrl + Shift + F)整个项目中进行文本搜索。它可能会向您显示添加此权限要求的内容。

答案 2 :(得分:0)

通过查看Gradle依赖项,您正在使用GCM消息通知服务。

所以这个场景在接下来的链接中很好地解释了:

GET_ACCOUNTS permission while using GCM - Why is this needed?