36

我最近收到了许多来自谷歌的邮件,用于我的许多应用程序。

邮件内容为:

您好 Google Play 开发者,

我们的记录显示,您的应用程序 XXXX,包名称为 com.XXXX.XXXXXXXXXX,目前违反了我们关于个人和敏感信息的用户数据政策。

政策问题:当应用请求或处理敏感的用户或设备信息时,Google Play 要求开发者提供有效的隐私政策。您的应用请求敏感权限(例如摄像头、麦克风、帐户、联系人或电话)或用户数据,但不包含有效的隐私政策。

需要采取的措施:在您应用的商品详情页面和您的应用中包含指向有效隐私政策的链接。您可以在我们的帮助中心找到更多信息。

或者,您可以通过删除对敏感权限或用户数据的任何请求来选择退出此要求。

如果您的目录中有其他应用程序,请确保它们符合我们的突出披露要求。

请在 2017 年 3 月 15 日之前解决此问题,否则将采取行政措施来限制您的应用的可见性,包括从 Play 商店中删除。感谢您帮助我们为 Google Play 用户提供清晰透明的体验。

问候,

Google Play 团队

应用程序的清单权限如下所示:

1-)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

2-)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<!--
  IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
  to match your app's package name + ".permission.C2D_MESSAGE".
-->
<permission android:protectionLevel="signature"
    android:name="com.XXXX.XXXXX.permission.C2D_MESSAGE" />
<uses-permission android:name="com.XXXX.XXXXXX.permission.C2D_MESSAGE" />

3-)

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-feature android:name="android.hardware.camera" />

4-)

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />

<uses-permission android:name="com.xxxx.xxxxx.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

5-)

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.BILLING" />

<permission
    android:name="com.xxx.xxxx.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.xxxx.xxxx.permission.C2D_MESSAGE" />

这些是我使用的库

compile 'com.google.android.gms:play-services-ads:10.0.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.baoyz.swipemenulistview:library:1.2.1'
compile 'com.google.android.gms:play-services-analytics:10.0.1'
compile 'com.flaviofaria:kenburnsview:1.0.7'
compile 'com.commit451:PhotoView:1.2.4'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.code-troopers.betterpickers:library:2.2.2'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.onesignal:OneSignal:3.3.1@aar'
compile 'com.google.android.gms:play-services-gcm:10.0.1'
compile 'com.google.android.gms:play-services-location:10.0.1'
compile 'com.android.support:design:25.1.1'
compile 'me.leolin:ShortcutBadger:1.1.10@aar'
// retrofit
compile('com.squareup.retrofit2:retrofit:2.1.0') {
    exclude module: 'okhttp'
}
compile 'com.squareup.okhttp3:okhttp:3.0.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'io.reactivex:rxandroid:1.1.0'
// UI binding
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
// DB
compile 'org.greenrobot:greendao:3.0.1'
compile 'com.github.paolorotolo:appintro:4.1.0'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'

其中哪些权限违反了 Google 用户数据?是否有违反 Google 用户数据的权限列表?如何解决?我应该删除这些还是有其他解决方案?另外,如果我必须准备隐私政策,是否有一些示例?

致谢。

4

8 回答 8

52

有一些方法可以克服这种违反政策的行为。首先,您需要制作违反政策的文件。要做到这一点有一些方法:

  1. 转到此链接:https ://app-privacy-policy-generator.firebaseapp.com/

然后提供您的应用名称、开发者帐户名称等,然后生成您的策略文件。

  1. 或者您可以使用此模板: https ://gist.github.com/alphamu/c42f6c3fce530ca5e804e672fed70d78

    然后将应用名称、开发者帐户等替换为您的。

现在您如何链接您的隐私文件:

如果您有自己的服务器,那么您可以在您的服务器中托管文件并使用该链接。如果没有,那么还有其他方法可以完成您的工作。

  1. 您可以将文件放在 git 中,然后使用该链接
  2. 您还可以采用更好的方法,例如只需在您的谷歌驱动器中创建一个文档文件,然后将您的政策文本粘贴到该文件上,然后选择File->Publish for the web您将获得一个共享链接,只需在您的政策 URL 中使用该链接即可。

希望这些对您有所帮助。

于 2017-03-12T19:22:15.693 回答
13

您需要添加隐私政策。要将隐私政策添加到您的商品详情中:

  1. 转到您的 Google Play 开发者控制台。
  2. 选择一个应用程序。
  3. 选择商品详情。
  4. 在“隐私政策”下,输入您在线托管隐私政策的 URL。
  5. 选择保存草稿(新应用)或提交更新(现有应用)。
于 2017-02-08T00:58:34.723 回答
5

READ_CONTACTS是一项敏感权限,Google 要求您拥有隐私权政策。

其他敏感权限是相机、录音、联系人。

您可以通过删除那些要求提供个人数据的敏感权限或向您的 Android 应用添加隐私政策 URL 来修复违规行为:

  1. 登录到您的 Google Play 开发者控制台。
  2. 选择所有应用程序
  3. 选择应用程序
  4. 点击商品详情
  5. 在隐私政策字段中输入您的隐私政策的公共 URL :

Google App Dashboard 上的隐私政策字段

请注意,您需要在您的网站上托管您的隐私政策,并在该“隐私政策”字段中提供 URL。Google 不会为您托管该协议。

您可以使用的托管策略的其他替代方法是 GitHub Pages。

于 2017-02-13T14:27:11.377 回答
5

在我的情况下,旧应用程序(部署在 BETA 轨道上)正在产生问题,并且控制台也在发出警报。

因此,请检查所有轨道(Beta、Alpha、内部和生产)中的所有活动应用程序以获取受限权限组。

于 2019-01-09T12:22:39.310 回答
4

字段隐私政策 URL 附近有一条黄色评论,是哪个权限在您的 apk 中导致此问题。

但是,从您的 Manifest 的第一次审查开始,READ_PHONE_STATE 和 GET_ACCOUNTS 绝对是需要策略 URL 的权限。

于 2017-02-08T06:19:10.340 回答
3

我问他们什么是解决方案,他们今天给我发了这封电子邮件:

我很乐意帮助澄清您对隐私政策警告的任何问题。有三种方法可以解决这个问题:

1- 如果您的应用请求用户数据或提出敏感权限请求(例如电话、帐户、联系人、相机或麦克风),您需要在两个位置添加有效的隐私政策:您的应用的商品详情页面(说明如下)和在您的应用程序中。

2- 作为第二种选择,您可以删除对用户数据或敏感权限的任何请求。例如,您需要从清单中删除可能敏感的权限。如果您删除这些请求,则无需添加隐私政策。

3- 如果您无法完成第 1 步或第 2 步,则需要从 Play 商店取消发布该应用。如果您的应用程序已经未发布,则无需采取任何措施,除非您将来重新发布该应用程序。

无论如何,在我的应用程序中,我没有请求提到的权限(相机、联系人、麦克风......等)

我在其中使用谷歌 Admob。而且我认为这可能会导致对这些权限的请求!!!。我还看到您在 gradle 中使用了 google play service ads (admob):

compile 'com.google.android.gms:play-services-ads:10.0.1'

可能的解决方案:有一种方法可以删除 gradle 中的权限:

<uses-permission android:name="android.permission.Camera" tools:node="remove" />
<uses-permission android:name="android.permission.READ_CONTACTS" tools:node="remove" />

这不是最好的解决方案,我们可能会等待另一个更好的解决方案,但这就是我到目前为止所得到的......

于 2017-02-08T06:29:03.780 回答
0

此违规错误是由于权限引起的

<uses-permission android:name="android.permission.READ_CONTACTS" />

你应该阅读谷歌开发者政策。如果此权限不是强制性的,您可以将其删除,然后您将不会收到此错误。否则,您首先必须在 google play 开发者控制台中为您的应用提供策略 url,并且您还必须在应用中提供相同的 url。

于 2017-02-10T06:30:26.093 回答
0

确认 Naitik Soni 的回复。我们在生产轨道上有“READ_SMS”权限,所以我们只能在没有生产权限的情况下推出新版本。

于 2019-01-25T05:48:20.200 回答