源碼中被用來檢查和請求權限的方法分別是Activity的checkSelfPermission
和requestPermissions
。這些方法api23引入,
int hasWriteContactsPermission = checkSelfPermission(Manifest.permission.WRITE_CONTACTS);
if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[] {Manifest.permission.WRITE_CONTACTS},
REQUEST_CODE_ASK_PERMISSIONS);
return;
}
insertDummyContact();
如果已有權限,insertDummyContact()
會執行。否則,requestPermissions
被執行來彈出請求授權對話框。爲解決這事,有許多第三方庫已經問世了,真屌真有速度。我試了很多最終找到了個滿意的hotchemi’s
PermissionsDispatcher