在 Android四大组件之广播接收者(BroadcastReceiver) 博文中的小案例拦截电话中,并未拦截,这是因为 Android 6.0(API 级别 23)或更高版本在运行时检查和请求权限。要确定您的应用是否已被授予权限,请调用新增的 checkSelfPermission() 方法。要请求权限,请调用新增的 requestPermissions() 方法。
那我们如何加权限呢?
第一步
在AndroidManifest文件中添加需要的权限。
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
第二步
检查权限
if(ContextCompat.checkSelfPermission(this, Manifest.permission.PROCESS_OUTGOING_CALLS)!= PackageManager.PERMISSION_GRANTED){
}
ContextCompat.checkSelfPermission又是什么呢?
ContextCompat.checkSelfPermission是一个API,主要用于检测某个权限是否已经被授予,方法返回值为PackageManager.PERMISSION_DENIED或者PackageManager.PERMISSION_GRANTED。当返回DENIED就需要进行申请授权。
第三步
申请授权
//检查权限
if(ContextCompat.checkSelfPermission(this, Manifest.permission.PROCESS_OUTGOING_CALLS)!= PackageManager.PERMISSION_GRANTED){