不论请求结果成功与否,回调函数onRequestPermissionsResult都不会被执行。贴上代码,求大神看看到底是哪里的问题?我用得是小米4全网通版,MIUI 8 6.8.18开发版,Android版本6.0.1MMB29M。
 private final static int SEND_SMS_REQUEST_CODE = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_msg);
        Button button = (Button) findViewById(R.id.send_btn);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (getAndroidSDKVersion() >= 23){
                    if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.SEND_SMS)
                            != PackageManager.PERMISSION_GRANTED) {
                        //申请CALL_PHONE权限
                        ActivityCompat.requestPermissions(MsgActivity.this, new String[]{Manifest.permission.SEND_SMS},
                                SEND_SMS_REQUEST_CODE);
                    }
                }
                EditText num = (EditText) findViewById(R.id.num_et);
                EditText context = (EditText) findViewById(R.id.context_et);
                SmsManager manager = SmsManager.getDefault();
                ArrayList<String> list = manager.divideMessage(context.getText().toString());
                int count = 0;
                for (String s : list){
                    manager.sendTextMessage(num.getText().toString(),null,s,null,null);
                    count++;
                    if (list.size() == 1){
                        Toast.makeText(getApplicationContext(),"信息发送成功!",Toast.LENGTH_SHORT).show();
                    }else if (list.size() == 0){
                        Toast.makeText(getApplicationContext(),"信息内容为空!",Toast.LENGTH_SHORT).show();
                    }else{
                        Toast.makeText(getApplicationContext(),"发送第"+count+"条短信成功!共"+list.size()+"条",Toast.LENGTH_SHORT).show();
                    }
                }            }
        });
    }    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        Toast.makeText(MsgActivity.this, "onRequestPermissionsResult被调用!", Toast.LENGTH_SHORT).show();
        doNext(requestCode,grantResults);
    }    private void doNext(int requestCode, int[] grantResults) {
        if (requestCode == SEND_SMS_REQUEST_CODE) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                // Permission Granted准许
                Toast.makeText(this,"已获得授权!",Toast.LENGTH_SHORT).show();            } else {
                // Permission Denied拒绝
                Toast.makeText(this,"未获得授权!",Toast.LENGTH_SHORT).show();
            }
        }
    }    public static int getAndroidSDKVersion() {
        int version = 0;
        try {
            version = Integer.valueOf(android.os.Build.VERSION.SDK);
        } catch (NumberFormatException e) {
            Log.i("errTag", e.toString());
        }
        return version;
    }