我最近更新了Android应用的代码,以请求Android 6.0及更高版本的权限。 但是,我现在面临着如何检查权限的困境。
在检查权限之前,我看到有人在线查看操作系统版本,因为23之前的版本,由于在安装时授予权限,因此无需检查权限。
现在我的支票看起来像这样,
if(checkPermissions()){
doThings();
} else {
requestPermissions();
}
但是我应该努力添加这个吗?
if (Build.VERSION.SDK_INT >= 23) {
if(checkPermissions()){
doThings();
} else {
requestPermissions();
}
} else {
doThings();
}
根据我的理解,我没有看到将后者添加到代码中的重点,旧版本的android可能会遇到第一个示例代码。
这一切让我想问,在这种情况下检查Android版本有什么好处吗?
答案 0 :(得分:5)
但是我应该努力添加这个吗?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if(checkPermissions()){ doThings(); } else { requestPermissions(); } } else { doThings(); }
如果checkPermissions()
和requestPermissions()
严格按API 23或更高版本调用类或方法,则应该这样做。或者,你可以按照自己的意愿去做。
这一切让我想问,在这种情况下检查Android版本有什么好处吗?
据我所知,鉴于上述情况,验证本身并不是必要的。因此,此检查只是一个耗尽if
条款的代码。
答案 1 :(得分:4)
ContextCompact.checkSelfPermission
在Android版本中返回PERMISSION_GRANTED
< 23。
所以你可以避免检查构建版本。
更多信息here