请求运行时权限时检查 Android 版本
Checking Android version when requesting runtime permission
我最近更新了 Android 应用程序的代码以请求 Android 6.0+ 的权限。
但是,我现在面临如何检查权限的困境。
我在网上看到有人在检查权限之前检查OS版本,因为23之前的版本,权限不需要检查,因为它们是在安装时授予的。
现在我的支票是这样的,
if(checkPermissions()){
doThings();
} else {
requestPermissions();
}
但是我应该努力添加这个吗?
if (Build.VERSION.SDK_INT >= 23) {
if(checkPermissions()){
doThings();
} else {
requestPermissions();
}
} else {
doThings();
}
根据我的理解,我不认为将后者添加到代码中有什么意义,旧版本的 android 可以 运行 到第一个示例代码中就好了。
这一切让我想问,在这种情况下检查 Android 版本有什么好处吗?
ContextCompact.checkSelfPermission
return 在 android 版本 < 23 中总是 PERMISSION_GRANTED
。
所以你可以避免检查构建版本。
更多信息 here
but should I take the effort to add this?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(checkPermissions()){
doThings();
} else {
requestPermissions();
}
} else {
doThings();
}
如果 checkPermissions()
并且 requestPermissions()
严格调用 类 或方法 API 23 或更高版本,您应该这样做。否则,你可以随心所欲。
All this brings me to ask, is there a benefit to checking Android version in this case?
据我所知,鉴于我上面所说的,验证本身是没有必要的。所以这个检查只是一个可消耗的 if
子句,使您的代码混乱。
我最近更新了 Android 应用程序的代码以请求 Android 6.0+ 的权限。 但是,我现在面临如何检查权限的困境。
我在网上看到有人在检查权限之前检查OS版本,因为23之前的版本,权限不需要检查,因为它们是在安装时授予的。
现在我的支票是这样的,
if(checkPermissions()){
doThings();
} else {
requestPermissions();
}
但是我应该努力添加这个吗?
if (Build.VERSION.SDK_INT >= 23) {
if(checkPermissions()){
doThings();
} else {
requestPermissions();
}
} else {
doThings();
}
根据我的理解,我不认为将后者添加到代码中有什么意义,旧版本的 android 可以 运行 到第一个示例代码中就好了。
这一切让我想问,在这种情况下检查 Android 版本有什么好处吗?
ContextCompact.checkSelfPermission
return 在 android 版本 < 23 中总是 PERMISSION_GRANTED
。
所以你可以避免检查构建版本。
更多信息 here
but should I take the effort to add this?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if(checkPermissions()){ doThings(); } else { requestPermissions(); } } else { doThings(); }
如果 checkPermissions()
并且 requestPermissions()
严格调用 类 或方法 API 23 或更高版本,您应该这样做。否则,你可以随心所欲。
All this brings me to ask, is there a benefit to checking Android version in this case?
据我所知,鉴于我上面所说的,验证本身是没有必要的。所以这个检查只是一个可消耗的 if
子句,使您的代码混乱。