在Android6.0設備上 ,遇到一些須要權限的操做,須要在程序中動態的去檢查響應的權限是否被許可。ide
不然可能出現程序意外中止等問題。this
int checkCallPhonePermission = ContextCompat.checkSelfPermission(mContext,Manifest.permission.CALL_PHONE);
code
if
(checkCallPhonePermission != PackageManager.PERMISSION_GRANTED){
it
ActivityCompat.requestPermissions(mContext,
new
String[]{Manifest.permission.CALL_PHONE},REQUEST_CODE_ASK_CALL_PHONE);
return
;
io
}
else
{
ast
//上面已經寫好的撥號方法
mobile
callDirectly(mobile);
權限
}
request
經過覆蓋方法實現回調監聽程序
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch
(requestCode) {
case
REQUEST_CODE_ASK_CALL_PHONE:
if
(grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Permission Granted
callDirectly(mobile);
}
else
{
// Permission Denied
Toast.makeText(MainActivity.
this
,
"CALL_PHONE Denied"
, Toast.LENGTH_SHORT)
.show();
}
break
;
default
:
super
.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}