未注释的参数会覆盖@NonNull参数:应将解决方案代码放在哪里?

时间:2018-08-07 10:18:32

标签: java android

我正在尝试从Android应用发送短信的基本程序。但是现在当我运行该应用程序时,单击“发送短信”按钮后什么也没有发生。我没有看到错误消息。

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] 
    permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    switch (requestCode) {
        case MY_PERMISSIONS_REQUEST_SEND_SMS: {
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    SmsManager smsManager = SmsManager.getDefault();
                    smsManager.sendTextMessage(phoneNo, null, message, null, null);
                    Toast.makeText(getApplicationContext(), "SMS sent.",
                            Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(getApplicationContext(),
                            "SMS faild, please try again.", Toast.LENGTH_LONG).show();
                    //return;
                }
            }
        }

    }

1 个答案:

答案 0 :(得分:0)

了解有关onRequestPermissionsResult()

的信息

您需要在NonNull中传递onRequestPermissionsResult()参数

参数

  • requestCode int :传入的请求代码
  • permissions String :请求的权限。 绝不为空。
  • grantResults int :授予相应权限的授予结果,权限为PERMISSION_GRANTEDPERMISSION_DENIED绝不为空。

示例代码

 @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case MY_PERMISSIONS_REQUEST_SEND_SMS: {
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                    SmsManager smsManager = SmsManager.getDefault();
                    smsManager.sendTextMessage(phoneNo, null, message, null, null);
                    Toast.makeText(getApplicationContext(), "SMS sent.",
                            Toast.LENGTH_LONG).show();
                } else {
                    Toast.makeText(getApplicationContext(),
                            "SMS faild, please try again.", Toast.LENGTH_LONG).show();
                    //return;
                }
            }
        }
    }