Android系統包含默認的授權提示框, 但是我們仍需要設置自己的頁面. 原因是系統提供的授權框, 會有不再提示的選項. 如果用戶選擇, 則無法觸發授權提示. 使用自定義的提示頁面, 可以給予用戶手動修改授權的指導.下面以定位權限為例:
如果用戶沒有動態申請權限那么用戶開啟應用可能無法使用定位的功能,應用也不會提示用戶開啟定位權限,這時候就需要動態申請權限。
第一步:檢查授權并且申請權限
// 檢查是否授權 if (ContextCompat.checkSelfPermission(this, Manifest.permission.access_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { //未授權動態申請授權 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_CODE); } else { //權限已經分配 }第二步:重寫onRequestPermissionsResult方法,用戶同意授權或者拒絕授權該做什么操作@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode) { case REQUEST_CODE: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //用戶同意授權 } else { //用戶拒絕授權 } break; }}
新聞熱點
疑難解答