1.在项目的Manifest.xml中添加静态权限
//拨打电话
<uses-permission android:name="android.permission.CALL_PHONE"/>
//发送短信
<uses-permission android:name="android.permission.SEND_SMS" />
注意:在这里需要注意的是,如果只写静态权限的话是没有办法使用的,会报错下面两个图的错误。都是因为没有申请动态权限。但是如果只是申请动态权限,没有在manifest.xml中申请静态权限,也是不行的,也会报出这样子的错误。
2.在MainActivity中添加动态申请的逻辑
public void requestPower() {
//判断是否已经赋予权限
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.上表权限字符)
!= PackageManager.PERMISSION_GRANTED) {
//如果应用之前请求过此权限但用户拒绝了请求,此方法将返回 true。
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.上表权限字符)) {//这里可以写个对话框之类的项向用户解释为什么要申请权限,并在对话框的确认键后续再次申请权限.它在用户选择"不再询问"的情况下返回false
} else {
//申请权限,字符串数组内是一个或多个要申请的权限,1是申请权限结果的返回参数,在onRequestPermissionsResult可以得知申请结果
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.上表权限字符,}, 1);
}
}
}
把“上表权限字符”替换成你所需要的权限
例如:
SEND_SMS(发送短信的权限)
CALL_PHONE(拨打电话的权限)
3.最后在onCreate中调用
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//调用该函数
requestPower();
// main();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)