Android清单文件权限之外部存储

7
我在清单文件中定义了以下权限,但我仍然看到Android询问应用程序是否需要访问外部存储器的权限,即使我不想访问外部存储器。
可能是因为Google Play服务导致的吗?
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
5个回答

6

请尝试以下方法解决 Google Play 服务错误:

  <uses-permission
         android:name="android.permission.WRITE_EXTERNAL_STORAGE"
         android:maxSdkVersion="Version code" />

应用程序末尾使用元数据。


我不想访问外部存储,但我看到Android正在请求它。 - i_raqz
你没有足够注意到问题,他坚持说我没有访问外部存储。 - Ahmad Ebrahimi

2
这已经是发布文章后近一年的时间了,但或许这会帮助到某些人。 如果你正在使用 play-services 版本小于 8.3,那么 play-services-maps 就会使用这个权限。
如果你没有使用 play-services-maps,那么你可能在使用 play-services-fitness,它将 maps 作为传递性依赖项。
如果你两者都没有使用,那么你可能有其他需要这个权限的传递性依赖项。 检查传递性依赖项的提示

1
这可能是由于以下两个原因之一导致的。
  1. 如果您的目标是使用 Google Maps Android API 的 Google Play services SDK 8.3 或更高版本,则您无需再请求 WRITE_EXTERNAL_STORAGE 权限。
  2. 如果您的目标是使用早期版本的 Google Play services SDK,则必须请求 android.permission.WRITE_EXTERNAL_STORAGE 权限。
请查看this link
  1. Google Play services 中存在一个错误,会将意外的 WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGEREAD_PHONE_STATE 权限合并到应用程序清单中。该问题在 Google Play services 10.0 发布版中得到解决。请参见this
为了避免这种情况,我建议包含必要的个别Play服务API和相应的build.gradle描述。请查看this
希望这能帮助您和未来的用户。

1
添加这些权限。
<uses-permission android:name="ANDROID.PERMISSION.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="ANDROID.PERMISSION.WRITE_EXTERNAL_STORAGE"/>

你没有足够关注这个问题,他坚持认为我没有访问外部存储。 - Ahmad Ebrahimi

0

这里缺少:

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

我不想访问外部存储,但我看到Android正在请求它。 - i_raqz
你没有足够关注这个问题,他坚持认为我没有访问外部存储。 - Ahmad Ebrahimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接