简体   繁体   English

请求权限时应用程序崩溃

[英]App crashes when requesting permission

I'm using this code to request SMS permission before running the method SendSMS(string 1, string 2);在运行方法SendSMS(string 1, string 2);之前,我正在使用此代码请求 SMS 权限SendSMS(string 1, string 2); but my app crashes before permission request takes place.但我的应用程序在权限请求发生之前崩溃。 What's missing?缺少了什么?

 final private int REQUEST_CODE = 101;

private void SendCreditSMS() {
    if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.SEND_SMS)
            != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(MainActivity.this,
                new String[]{Manifest.permission.SEND_SMS}, REQUEST_CODE);
    } else {
        SendSMS("181", "رصيد");
    }
}

Try this,尝试这个,

    final private int REQUEST_CODE = 101;


    private void SendCreditSMS() {
      if (Build.VERSION.SDK_INT >= 23) {
            if (ActivityCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.SEND_SMS)
                    != PackageManager.PERMISSION_GRANTED) 
            {
                ActivityCompat.requestPermissions(MainActivity.this,
                        new String[]{android.Manifest.permission.SEND_SMS}, REQUEST_CODE);
            } else 
            {
                SendSMS("181", "رصيد");
            }
        }
        else{
            SendSMS("181", "رصيد");
        }
    }

The problem may be due to the reason that you declared the activity in which you request permission(s) as with no history.问题可能是由于您将请求许可的活动声明为没有历史记录的原因。 To solve the problem remove android:noHistory="true" line from the associated activity's code block in AndroidManifest file.要解决此问题,请从 AndroidManifest 文件中相关活动的代码块中删除android:noHistory="true"行。 To have an activity with no history you can use other calls such as finishAndRemoveTask() .要进行没有历史记录的活动,您可以使用其他调用,例如finishAndRemoveTask()

Try going to the application manager in your android device and select the app you are currently executing.尝试转到 Android 设备中的应用程序管理器并选择您当前正在执行的应用程序。 Then check whether permissions are given by the device to use send_sms service in your device.然后检查设备是否授予在您的设备中使用 send_sms 服务的权限。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM