// 檢查是否獲得了權(quán)限(Android6.0運(yùn)行時(shí)權(quán)限)
if (ContextCompat.checkSelfPermission(MainActivity.this,
Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){ // 沒(méi)有獲得授權(quán),申請(qǐng)授權(quán)
if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
Manifest.permission.CALL_PHONE)) { // 返回值:// 如果app之前請(qǐng)求過(guò)該權(quán)限,被用戶拒絕, 這個(gè)方法就會(huì)返回true.// 如果用戶之前拒絕權(quán)限的時(shí)候勾選了對(duì)話框中”Don’t ask again”的選項(xiàng),那么這個(gè)方法會(huì)返回false.// 如果設(shè)備策略禁止應(yīng)用擁有這條權(quán)限, 這個(gè)方法也返回false.
// 彈窗需要解釋為何需要該權(quán)限,再次請(qǐng)求授權(quán)
Toast.makeText(MainActivity.this, "請(qǐng)授權(quán)!", Toast.LENGTH_LONG).show(); // 幫跳轉(zhuǎn)到該應(yīng)用的設(shè)置界面,讓用戶手動(dòng)授權(quán)
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
}else{ // 不需要解釋為何需要該權(quán)限,直接請(qǐng)求授權(quán)
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},
MY_PERMISSIONS_REQUEST_CALL_PHONE);
}
}else { // 已經(jīng)獲得授權(quán),可以打電話
//用intent啟動(dòng)撥打電話
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mobile));
startActivity(intent);
}
網(wǎng)頁(yè)題目:Android撥打電話 安卓撥打電話權(quán)限
文章起源:
http://weahome.cn/article/johcep.html