Android上的EasyPermissions没有';不授予权限

Android上的EasyPermissions没有';不授予权限,android,android-permissions,Android,Android Permissions,我正在使用EasyPermissions库授予我的应用程序中的某些权限。这是一个场景: 这是logcat初始化我的应用程序并按下按钮 D/HomeActivity: He pulsado ringtoneMenuOpen D/HomeActivity: onPermissionsDenied D/HomeActivity: Hemos llegado aquí con permisos denegados y 'No volver a mostrar' 然后出现一个对话框(AppSetting

我正在使用EasyPermissions库授予我的应用程序中的某些权限。这是一个场景:

这是logcat初始化我的应用程序并按下按钮

D/HomeActivity: He pulsado ringtoneMenuOpen
D/HomeActivity: onPermissionsDenied
D/HomeActivity: Hemos llegado aquí con permisos denegados y 'No volver a mostrar'
然后出现一个对话框(AppSettingsDialog),说明使用“取消”和“接受”按钮需要权限。我按下“接受”并打开“设置”应用程序屏幕。我点击权限项,它被启用了。。。我返回应用程序,Logcat向我显示onpermissiongrated调试说明。我再次在运行时单击按钮(进入铃声设置逻辑,因为我已被授予权限),但我再次进入onPermissionsDenied方法

onPermissionsGranted He pulsado ringtoneMenuOpen
onPermissionsDenied Hemos llegado aquí con permisos denegados y 'No volver a mostrar'
这是我的班级结构(仅供参考)

public类主页实现EasyPermissions.PermissionCallbacks{
...
私有字符串[]permission\u sounds={Manifest.permission.WRITE\u设置,Manifest.permission.WRITE\u外部存储};
私人内部RC_许可=500;
私人活动法;
…一次创建{
act=这个;
}
//我将此onClickListener分配给ringtoneButton
private View.OnClickListener ringtoneMenuOpen()的{
日志d(标签“Ringtonemenoupen accessmentmos,tenemos que entrar ahora en cluster permisos e intentar”);
soundButtonMode=soundButtonMode.RIGNTONE;
返回新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
Log.d(标记“He pulsado RingtoneMenoOpen”);//第1行Logcat
if(EasyPermissions.hasPermissions(act,Permissions\u声音)){
新的SetSoundAsRingtone(act.execute();
}否则{
EasyPermissions.requestPermissions(act,act.getString(R.string.permission\u基本原理),RC\u permissionSounds,permission\u sounds);
}
}
};
}
...
@凌驾
public void onRequestPermissionsResult(int-requestCode、字符串[]权限、int[]grantResults){
super.onRequestPermissionsResult(请求代码、权限、授权结果);
EasyPermissions.onRequestPermissionsResult(请求代码、权限、授权结果、法案);
}
@凌驾
public void onPermissionsGranted(int requestCode,@NonNull List perms){
Log.d(标签“onPermissionsGranted”);
buttonRingtone.performClick();
}
@凌驾
public void onPermissionsDenied(int requestCode,@NonNull List perms){
Log.d(标记“onPermissionsDeed”);//第2行Logcat
if(EasyPermissions.somePermissionPermanentlyDenied(this,perms)){
Log.d(标记“Hemos llegado aqícon permisos denegados y'No volver a mostrar'”;//第3行Logcat
新建appsetingsdialog.Builder(this.build().show();
}
}
...
试试我的库。;)
public class Home implements EasyPermissions.PermissionCallbacks{

...
private String[] permission_sounds = {Manifest.permission.WRITE_SETTINGS, Manifest.permission.WRITE_EXTERNAL_STORAGE};
private int RC_permissionSounds = 500;
private Activity act;

..onCreate{
    act = this;
}

//I assign this onClickListener to ringtoneButton
private View.OnClickListener ringtoneMenuOpen(){
        Log.d(TAG, "ringtoneMenuOpen accedemos, tenemos que entrar ahora en solicitar permisos e intentar ");
        soundButtonMode = SoundButtonMode.RIGNTONE;
        return new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG, "He pulsado ringtoneMenuOpen"); //Line 1 Logcat
                if (EasyPermissions.hasPermissions(act, permission_sounds)) {
                    new SetSoundAsRingtone(act).execute();
                } else {
                    EasyPermissions.requestPermissions(act, act.getString(R.string.permission_rationale), RC_permissionSounds, permission_sounds);
                }
            }
        };
    }
...
    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, act);
    }
    @Override
    public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
        Log.d(TAG, "onPermissionsGranted");
        buttonRingtone.performClick();
    }
    @Override
    public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
        Log.d(TAG, "onPermissionsDenied");//Line 2 Logcat

        if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
            Log.d(TAG, "Hemos llegado aquí con permisos denegados y 'No volver a mostrar'"); //Line 3 Logcat
            new AppSettingsDialog.Builder(this).build().show();
        }
    }
...