在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);
}
}