在我的应用程序中,当按下“允许”按钮时,一旦授予的权限就可以正常工作,那么它就不会调用操作方法,在这里我正在使用片段,因此当“允许”按钮按下任何解决方案时如何调用操作方法。
//变量声明
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();
}
}
休息;
}
}
答案 0 :(得分:1)
为什么不使用片段ActivityCompat
方法而不是onRequestPermissionsResult
方法,而是通过在片段上覆盖{{1}}来获得结果?