在按允许运行时权限按钮时,它不是在调用操作方法吗?

时间:2018-09-21 10:07:14

标签: android android-studio

在我的应用程序中,当按下“允许”按钮时,一旦授予的权限就可以正常工作,那么它就不会调用操作方法,在这里我正在使用片段,因此当“允许”按钮按下任何解决方案时如何调用操作方法。

//变量声明

    private static final int MY_PERMISSIONS_REQUEST_PHONE_CALL = 11;

//具有onClick侦听器的方法

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {



            if (ContextCompat.checkSelfPermission(getActivity(),
                    android.Manifest.permission.CALL_PHONE)
                    != PackageManager.PERMISSION_GRANTED) {


                if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(),
                        android.Manifest.permission.CALL_PHONE)) {



                } else {
                    ActivityCompat.requestPermissions(getActivity(),
                            new String[]{android.Manifest.permission.CALL_PHONE},
                            MY_PERMISSIONS_REQUEST_PHONE_CALL);


                }
            }
            else {

                CallPErmission();
            }


        }
    });

//应请求权限

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    switch (requestCode) {


        case MY_PERMISSIONS_REQUEST_PHONE_CALL:



            if(grantResults.length>0 && permissions[0].equals(android.Manifest.permission.CALL_PHONE)){

                if(grantResults[0]==PackageManager.PERMISSION_GRANTED )
                {


                    CallPErmission();

                }



           }

休息;

    }


}

1 个答案:

答案 0 :(得分:1)

为什么不使用片段ActivityCompat方法而不是onRequestPermissionsResult方法,而是通过在片段上覆盖{{1}}来获得结果?