2017-04-26 65 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不管怎麼說這並未毫無意義回答這個問題,但感謝你的信息! –