[英]Android App exits when request Runtime Permissions
在下面的程序中,我在发送消息之前请求 SMS 许可。
在第一次应用程序执行时,当消息请求被确认时,会检查权限,如果没有,则会发出一个请求用户允许应用程序的弹出窗口。
发出此弹出窗口时,应用程序将在后台移动。
我发现了很多关于这个问题的主题,但没有解决我的问题。 例如,清单中缺少 nohistory 条目。
private void checkForSmsPermission() {
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.SEND_SMS) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.SEND_SMS},
MY_PERMISSIONS_REQUEST_SEND_SMS);
return;
} else {
// Permission already granted. Enable the SMS button.
return;
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == MY_PERMISSIONS_REQUEST_SEND_SMS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "Permission GRANTED", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Permission DENIED", Toast.LENGTH_SHORT).show();
}
}
}
public void send_command (String text){
checkForSmsPermission();
//Get the SmsManager instance and call the sendTextMessage method to send message
SmsManager sms=SmsManager.getDefault();
sms.sendTextMessage(recipient_number, null, text, null,null);
}
发生这种情况是因为您无论如何都在调用以下方法。
SmsManager sms=SmsManager.getDefault();
sms.sendTextMessage(recipient_number, null, text, null,null);
如果您确定您有权限,您应该只给他们打电话,否则您的应用程序将崩溃。 始终建议在权限验证成功时调用这些方法。 但在您的情况下,无论用户是否提供了权限,它都会被调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.