我在Google Play商店中创建了一个应用程序,并显示了所有停放在Kortrijk的汽车的位置,这些汽车是由传感器实时注册的,应用程序显示所有停放的汽车和免费停车位置Googlemap mapview。
但是,几天前我收到Google Play开发人员的警告,要求采取隐私政策。
我的清单就像:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="be.programmeercursussen.parkingkortrijk" >
<!-- Internet permission for network operations -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Creating Permission to receive Google Maps -->
<permission
android:name="be.programmeercursussen.parkingkortrijk.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<application
android:allowBackup="true"
android:icon="@drawable/parking_icon"
android:label="@string/app_name"
android:theme="@style/MaterialTheme" >
-->
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="my Api key ..." />
<!-- SplashScreen => startup screen -->
<activity
android:name=".SplashScreen"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Main activity -->
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
<!-- ParkingDetail activity -->
<activity
android:name=".ParkingDetailActivity"
android:label="@string/title_activity_parking_detail"
android:screenOrientation="portrait" >
</activity>
<!-- StraatParkeren activity -->
<activity
android:name=".StraatParkeren"
android:label="@string/title_activity_straat_parkeren"
android:screenOrientation="portrait" >
</activity>
</application>
在开发者控制台中,它说我已获得Get_accounts权限,这是违规行为,但此权限在应用中并未进行硬编码。但后来我发现Google Play服务库会自动添加这个我觉得呢?所以我的编译行
compile 'com.google.android.gms:play-services:7.5.0"
我改为选择性API部分
compile 'com.google.android.gms:play-services-maps:7.5.0"
将此行更改为此并生成apk并尝试安装它,在智能手机上安装时,应用程序访问的内容概述中不再出现get_accounts问题。
所以我在build.gradle中的依赖项现在是:
dependencies {
/*
find latest gradle versions on : http://gradleplease.appspot.com/
*/
compile fileTree(dir: 'libs', include: ['*.jar'])
// appcompat library
compile 'com.android.support:appcompat-v7:22.2.1'
// material design library
compile 'com.android.support:design:22.2.1'
// recyclerview
compile 'com.android.support:recyclerview-v7:22.2.1'
// cardview
compile 'com.android.support:cardview-v7:22.2.1'
// google play services, selective API (maps) !!!
// https://developers.google.com/android/guides/setup#split
compile 'com.google.android.gms:play-services-maps:7.5.0'
// Jsoup library
compile 'org.jsoup:jsoup:1.8.3'
}
现在,如果我基于manifest和build.gradle生成apk,现在它说安装应用程序时可以访问:
- approximate location (network-based);
- modify or delete the contents of your SD card
- read the contents of your SD card
- view network state (full Internet access)
我确信需要查看网络状态,否则应用无法从互联网上读取实时xml。
但我不确定大概位置是否会让我违反新的隐私条款?
此外,我不知道为什么该应用可以读取,修改或删除SD卡的内容,因为该应用不应该使用这些...是否有任何自动设置的权限manifest和build.gradle?
感谢您提前提供任何帮助,
Grtz Davy
答案 0 :(得分:1)
没有使用标准清单设置权限。
由于您使用的是以下8.3版本的MAPS API,因此您必须包括
导致修改或删除内容的WRITE_EXTERNAL_STORAGE
https://developers.google.com/maps/documentation/android-api/config#specify_android_permissions
location
权限也附带MAPS api