定位目标权限 23
Location target permission 23
我正在使用 altbeacon 库来监视和测距信标。我已经阅读了您的请求权限页面,只是想知道,如果我将位置权限定位为 API 23+ (),扫描是否适用于 API < 23 的设备?我没有真正的设备,所以无法测试它。或者有什么方法可以不使用 API 小于 23 的设备请求位置权限?感谢您的回答
在 Android 23 日及以后,您需要检查应用程序是否已被授予 "dangerous" 权限,如果没有,请询问用户。
Android 支持库为此提供了辅助函数。
参见 Requesting Permissions at Run Time。
主要函数是checkSelfPermission
和requestPermissions
.
为了不让旧版本的 Android 出现问题,您可以使用以下方法检查您是否在 运行 Marshmallow 设备上:
public static boolean isMNC() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}
如果您使用的是 运行 Marshmallow 或更新的设备,这将 return true
,否则 false
。所以,如果这个returns true
,检查权限,否则不要。
您可能还应该在调用 checkSelfPermission
和 requestPermissions
.
的函数上使用注释 @SuppressLint("NewApi")
重述核心问题:
如果您构建的应用程序 minSdkVersion < 23 但 targetSdkVersion >= 23,当您尝试扫描蓝牙信标时会发生什么?
简答:有效。
更长的答案:
不会发生用户权限请求。 如果 minSdkVersion < 23,编译器将阻止你包含像 [=10 这样的代码行=] 因为它不会 运行 早期 Android 版本。如果你将它包装在像 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
这样的 if 语句中,它就不会被执行。如果您添加像 @SuppressLint("NewApi")
这样的注释,应用程序将在尝试执行代码时崩溃。
信标扫描将正常工作,无论是在前台还是在后台,不管用户权限是否被授予。较早的 Android 版本无法请求用户的许可,因此该应用程序的行为就像他们已被授予一样。
我正在使用 altbeacon 库来监视和测距信标。我已经阅读了您的请求权限页面,只是想知道,如果我将位置权限定位为 API 23+ (),扫描是否适用于 API < 23 的设备?我没有真正的设备,所以无法测试它。或者有什么方法可以不使用 API 小于 23 的设备请求位置权限?感谢您的回答
在 Android 23 日及以后,您需要检查应用程序是否已被授予 "dangerous" 权限,如果没有,请询问用户。
Android 支持库为此提供了辅助函数。
参见 Requesting Permissions at Run Time。
主要函数是checkSelfPermission
和requestPermissions
.
为了不让旧版本的 Android 出现问题,您可以使用以下方法检查您是否在 运行 Marshmallow 设备上:
public static boolean isMNC() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}
如果您使用的是 运行 Marshmallow 或更新的设备,这将 return true
,否则 false
。所以,如果这个returns true
,检查权限,否则不要。
您可能还应该在调用 checkSelfPermission
和 requestPermissions
.
@SuppressLint("NewApi")
重述核心问题:
如果您构建的应用程序 minSdkVersion < 23 但 targetSdkVersion >= 23,当您尝试扫描蓝牙信标时会发生什么?
简答:有效。
更长的答案:
不会发生用户权限请求。 如果 minSdkVersion < 23,编译器将阻止你包含像 [=10 这样的代码行=] 因为它不会 运行 早期 Android 版本。如果你将它包装在像
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
这样的 if 语句中,它就不会被执行。如果您添加像@SuppressLint("NewApi")
这样的注释,应用程序将在尝试执行代码时崩溃。信标扫描将正常工作,无论是在前台还是在后台,不管用户权限是否被授予。较早的 Android 版本无法请求用户的许可,因此该应用程序的行为就像他们已被授予一样。