Android开发者文档非常具有误导性,我似乎无法理解底线。
我的应用包含以下权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
我需要添加这个新的“正常”权限
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
这会影响使用自动更新功能的用户吗?他们需要接受应用程序的新许可吗?**
Google文档 https://developer.android.com/guide/topics/permissions/requesting.html https://developer.android.com/training/permissions/requesting.html
答案 0 :(得分:0)
该应用可以在不要求用户授予权限的情况下进行更新。
CHANGE_WIFI_STATE
是正常的权限。
从Android 6.0(API级别23)开始,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时。此方法简化了应用安装过程,因为用户在安装或更新应用时无需授予权限。
[...]
如果设备运行的是Android 5.1或更低版本,或,您应用的目标SDK为22或更低:如果您在清单中列出了危险权限,则该用户已拥有在安装应用程序时授予权限;如果他们不授予权限,系统根本不会安装该应用程序。
如果设备运行的是Android 6.0或更高版本,则和您应用的目标SDK为23或更高:应用必须列出清单中的权限,并且必须在应用程序运行时请求它所需的每个危险权限。用户可以授予或拒绝每个权限,即使用户拒绝权限请求,应用也可以继续以有限的功能运行。
来源:https://developer.android.com/training/permissions/requesting.html
这意味着运行Android 5.1或更早版本的用户不会自动更新应用,并且必须在更新前确认新的危险权限。如果您的应用的目标SDK版本低于23,则运行Android 6+的用户也必须确认更新。