应用程序请求权限时应用程序崩溃

时间:2017-02-16 09:43:11

标签: android permissions crash android-permissions

我在运行方法SendSMS(string 1, string 2);之前使用此代码请求短信权限 但我的应用程序在发出权限请求之前崩溃了。 缺少什么?

 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", "رصيد");
    }
}

3 个答案:

答案 0 :(得分:0)

试试这个,

    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", "رصيد");
        }
    }

答案 1 :(得分:0)

问题可能是由于您声明了请求权限的活动而没有历史记录。解决问题删除 android:noHistory="true" 来自AndroidManifest文件中相关活动的代码块的行。要拥有没有历史记录的活动,您可以使用其他来电,例如finishAndRemoveTask()

答案 2 :(得分:0)

尝试访问Android设备中的应用程序管理器,然后选择您当前正在执行的应用程序。然后检查设备是否给出了在设备中使用send_sms服务的权限。