【发布时间】:2017-02-12 05:37:00
【问题描述】:
我正在尝试发送具有运行时权限的短信目标版本 24。它在 Redmi Mi 3s 设备中提供 SecurityException,但在其他装有 Marshmallow OS 的设备上运行良好。
final int REQ_CODE = 100;
void requestPermission(){
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
CTLogs.printLogs( "Permission is not granted, requesting");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS,Manifest.permission.READ_SMS,Manifest.permission.RECEIVE_SMS}, REQ_CODE);
// button.setEnabled(false);
} else {
CTLogs.printLogs("Permission has been granted");
sendSMS();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQ_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
CTLogs.printLogs("Permission has been granted");
sendSMS();
} else {
CTLogs.printLogs("Permission denied !!!");
}
}
}
【问题讨论】:
-
您是否在清单中添加了权限以及您的应用是否为默认消息应用?
-
是的,我也在清单文件中添加了权限
-
-
如果你想要一个简单且有效的代码,你可以从github.com/mptrista/PermissionHelper添加一个类
标签: android sms runtime-permissions android-securityexception