我有一个应用程序,其targetSDKversion为21(不能向上移动21以上)。当目标API小于棉花糖时测试棉花糖上的应用程序级别许可
它使用位置服务,但我已经能够测试以确保系统级别的位置权限已启用,但在安装了6.0的设备上,您可以关闭应用程序级别的位置权限。我无法确定是否已启用此级别的权限。
我正在调用下面:
locationMode = Settings.Secure.getInt(activity.getContentResolver(),
Settings.Secure.LOCATION_MODE);
returnVal = (locationMode != Settings.Secure.LOCATION_MODE_OFF);
由于locationMode是3(即它已经启用),即使在应用程序级的位置已被禁用它返回真值。
很多,我一直在寻找的线不在API 21提供的所有使用API调用引用的(我们只是不能去还。)
谁能给我的东西,我可以检查较新的设备以查看是否启用了应用程序级权限,但仍然能够以targetSDKVersion为21进行此测试。在执行此测试之前,我将测试Build.VERSION> 23。或者这甚至有可能?
I * *认为是['PermissionChecker'(https://developer.android.com/reference/android/support/v4/content/PermissionChecker.html)将覆盖此方案。话虽这么说,但我更关注于这一点,并且更多地关注为了让你能够提升你的'targetSdkVersion'所需的代码更改。 – CommonsWare
无法在我的环境中解析.content.PermissionChecker。我假设在目标SDKVersion为22或23之前它不可用?我很想升级到一个更新的API,但这是一个银行应用程序,我们无法将其移动到获得批准和资助后才能这样做,因为这是删除较旧库的一些工作,它目前正在使用API 23上的失败。 – Mike
'PermissionChecker'是Android支持库的一部分(例如'support-v4')。 – CommonsWare