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