2017-04-26 58 views
0

我最近更新的代码的Android应用程序来请求权限在Android 6.0以上版本时,检查Android版本。 但是,我现在面临着如何检查权限的困境。请求运行许可

我看到有人检查权限之前在网上检查OS版本,因为23之前的版本中,权限是不必要的,由于他们检查安装的被授予。

现在我检查这个样子,

if(checkPermissions()){ 
    doThings(); 
} else { 
    requestPermissions(); 
} 

,但我应该努力增加呢?

if (Build.VERSION.SDK_INT >= 23) { 
    if(checkPermissions()){ 
     doThings(); 
    } else { 
     requestPermissions(); 
    } 
} else { 
    doThings(); 
} 

我没有看到添加后者的代码从我的理解来看,老版本的Android可能会遇到的第一个示例代码就好了。

所有这一切都使我问,有没有在这种情况下检查Android版本有什么好处?

回答

2

但是我应该努力添加吗?

if (Build.VERSION.SDK_INT >= 23) { 
    if(checkPermissions()){ 
     doThings(); 
    } else { 
     requestPermissions(); 
    } 
} else { 
    doThings(); 
} 

您应该如果checkPermissions(),并且requestPermissions()调用类或方法严格API 23或更高版本。否则,你可以按你的意愿去做。

这一切都让我问,在这种情况下检查Android版本是否有好处?

据我所知,验证本身并不是必需的,因为我上面说过。所以这个检查只是一个消耗if条款弄乱你的代码。

2
ContextCompact.checkSelfPermission 

回报android的版本总是PERMISSION_GRANTED 这样就可以避免检查内部版本。 更多信息here

+0

我没有看到它明确写出你所提供的链接,这将是如果你检查你其实并不甚至寿它有权限的怪异的行为是Android低于23不管怎么说这并未毫无意义回答这个问题,但感谢你的信息! –