Skip to content

sun804336516/AopPermissions

Repository files navigation

AopPermissions

Aop实现动态权限请求 改造自https://github.com/crazyqiang/Aopermission.git

为什么要重新实现》》》》》 由于他采用的Activity实现的权限请求,当请求权限时,由于Activity启动,此时系统权限dialog弹出, 界面会出现一闪而过的半透明,对于有强(she)迫(ji)症的人来说,可能是一种缺陷,故改造采用Fragment实现

用法:

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViewById(R.id.textView).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            requestPermission();
        }
    });
}
@NeedPermission(value = {Manifest.permission.WRITE_EXTERNAL_STORAGE})
public void requestPermission() {
    Toast.makeText(this, "sd卡读写权限申请成功", Toast.LENGTH_SHORT).show();
}

@PermissionCanceled
public void dealCancelPermission(PermissionCancelBean bean) {
    Toast.makeText(bean.getContext(), "sd卡读写权限申请被取消,请求码 :" + bean.getRequestCode(), Toast.LENGTH_SHORT).show();
}

/**
 * 权限被拒绝
 *
 * @param permissionDenyBean PermissionDenyBean
 */
@PermissionDenied
public void dealDeniedPermission(PermissionDenyBean permissionDenyBean) {
    final Context context = permissionDenyBean.getContext();
    new AlertDialog.Builder(context)
            .setTitle("提示")
            .setMessage("sd卡读写权限被禁止,需要手动打开")
            .setPositiveButton("去设置", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    SettingUtil.go2Setting(context);
                }
            })
            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            })
            .create().show();

}

}

About

Aop实现动态权限请求

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages