Intent call action doesn't work on Marshmallow

后端 未结 3 2029
谎友^
谎友^ 2021-01-04 09:32

I\'m trying to start a call intent action on a device who has Marshmallow as OS, Using the same steps as usual (This is working on versions below):

Add permission:

3条回答
  •  误落风尘
    2021-01-04 09:59

    Method to make call

    public void onCall() {
            int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE);
    
            if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(
                        this,
                        new String[]{Manifest.permission.CALL_PHONE},
                        "123");
            } else {
                startActivity(new Intent(Intent.ACTION_CALL).setData(Uri.parse("tel:12345678901")));
            }
        }
    

    Check permission

    @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            switch (requestCode) {
    
                case 123:
                    if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
                        onCall();
                    } else {
                        Log.d("TAG", "Call Permission Not Granted");
                    }
                    break;
    
                default:
                    break;
            }
        }
    

提交回复
热议问题