Android上的EasyPermissions没有';不授予权限
我正在使用EasyPermissions库授予我的应用程序中的某些权限。这是一个场景: 这是logcat初始化我的应用程序并按下按钮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
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();
}
}
...