Ionic项目上传Google Play遇GET_ACCOUNTS权限隐私政策报错咨询
关于Google Play隐私政策要求的问题解答
我的问题
我用Ionic框架搭建了项目,还集成了Firebase数据库API和AngularFire2。结果把APK上传到Google Play商店时收到了报错:
您的APK使用了需要隐私政策的权限:(android.permission.GET_ACCOUNTS)
我已经在AndroidManifest.xml里确认这个权限确实存在,想请教两个问题:
- 我是不是必须要创建隐私政策?
- 做这件事难度大吗?
附上我的AndroidManifest.xml内容:
<?xml version='1.0' encoding='utf-8'?> <manifest android:hardwareAccelerated="true" android:versionCode="2" android:versionName="0.0.2" package="io.ionic.habit" xmlns:android="http://schemas.android.com/apk/res/android"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true"> <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> <intent-filter android:label="@string/launcher_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="de.appplant.cordova.emailcomposer.Provider"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/emailcomposer_provider_paths" /> </provider> <receiver android:enabled="true" android:name="com.google.android.gms.analytics.AnalyticsReceiver"> <intent-filter> <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" /> </intent-filter> </receiver> <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.analytics.AnalyticsService" /> <receiver android:enabled="true" android:exported="true" android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> <service android:enabled="true" android:exported="false" android:name="com.google.android.gms.analytics.CampaignTrackingService" /> </application> <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="25" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> </manifest>
解答
1. 必须创建隐私政策吗?
没错,必须要做。Google Play的审核规则卡得很严,只要你的应用请求了涉及用户隐私的权限——比如GET_ACCOUNTS,这个权限能获取设备上的账号相关信息——就必须提供公开可访问的隐私政策,不然根本过不了审核。
而且不止Google Play的要求,像GDPR这类全球通用的隐私法规,也要求这类收集用户数据的应用必须有明确的隐私政策,告知用户你收集了什么、用来干嘛、怎么处理这些数据。另外你集成的Firebase本身也可能在收集用户的分析或行为数据,这也进一步要求你必须有隐私政策。
2. 操作难度大吗?
别担心,其实没那么复杂,分几步就能搞定:
- 先理清数据情况
先搞清楚两点:一是你的应用通过GET_ACCOUNTS权限到底收集了哪些数据(比如账号ID、邮箱);二是Firebase服务会自动收集哪些数据(比如应用使用分析数据,如果用了Firebase Auth的话还有认证信息)。 - 撰写隐私政策内容
内容不用太晦涩,只要覆盖这几个关键点就行:- 你收集的用户数据类型
- 收集这些数据的具体用途
- 数据的存储方式,以及是否会共享给Firebase这类第三方服务
- 用户拥有的权利(比如怎么查看、删除自己的个人数据)
- 你的联系方式
你可以参考同类型应用的隐私政策,或者用一些隐私政策生成工具来辅助(注意要符合你目标用户所在地区的法规)。
- 在Google Play后台配置
把写好的隐私政策放到一个公开可访问的地方(比如你的个人网站、GitHub Pages),然后登录Google Play Console,在应用的「内容分级」或者「应用信息」页面里填写隐私政策的链接就行。 - 可选操作:移除不必要的权限
如果你仔细检查后发现,你的应用其实根本不需要GET_ACCOUNTS权限——有时候这个权限是依赖库(比如Firebase的某些模块)自动帮你加上的——那你可以直接在AndroidManifest.xml里移除它:
记得移除后要测试一下应用功能是否正常,如果Firebase服务不需要这个权限的话,移除后就不用因为它而额外准备隐私政策了。<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="remove" />
内容的提问来源于stack exchange,提问作者Jack_Hardy
相关产品推荐
相关产品推荐

