Google Play服务添加不需要的权限

时间:2015-08-12 00:14:16

标签: android permissions google-play-services

阅读以下问题后: Why are permissions being automatically added to my AndroidManifest when including Google Play Services library 我意识到我需要在build.gradle中更改已编译的项目。

目前我有compile 'com.google.android.gms:play-services:7.5.0' 但这增加了许多不必要的权限,如位置,读写SD卡的权限,完全网络访问,查看网络连接等。我只使用Google Play服务作为游戏中的排行榜和成就。因此,我认为我的应用无需任何权限。

那么我应该编译什么呢?我必须列出具体的服务,但我无法找到服务列表,以便我可以选择。

这将是:

compile 'com.google.android.gms:play-services-achievements7.5.0'
compile 'com.google.android.gms:play-services-leaderboards7.5.0'

对于仅在Google Play上使用这些服务的游戏,我希望获得尽可能少的权限。

我还在我的Manifest中声明了这些权限:

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

任何人都可以为我提供适当的编译服务吗?

更新 这是我的build.gradle文件:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "mjj.fling"
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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

    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.google.android.gms:play-services-games:7.5.0'
    compile project(':BaseGameUtils')

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

}


FAILURE: Build failed with an exception.
  • 出了什么问题: 任务&#39;:app:processDebugResources&#39;执行失败。
      

    错误:多个包含包名称的库&#39; com.google.android.gms&#39;   您可以使用android.enforceUniquePackageName = false暂时禁用此错误   但是,这是暂时的,将在1.0

    中强制执行

这是我在重建项目时遇到的错误。

  • 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。

建立失败

1 个答案:

答案 0 :(得分:3)

结帐https://developers.google.com/android/guides/setup以获取Google提供的有关如何设置Play服务的信息。特别是签出标题为Selectively compiling APIs into your executable的小节。它向您展示了如何分解要编译的服务。您可能只想使用游戏中的一个:

com.google.android.gms:play-services-games:7.5.0

除了使用较少的权限外,它还会减少您的APK大小和方法数量,这两者都是好事,而不是拉入整个Play服务库。