com.hjq.permissions.XXPermissions Java Examples
The following examples show how to use
com.hjq.permissions.XXPermissions.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: MainActivity.java From XToast with Apache License 2.0 | 5 votes |
public void show6(View v) { XXPermissions.with(this) .permission(Permission.SYSTEM_ALERT_WINDOW) .request(new OnPermission() { @Override public void hasPermission(List<String> granted, boolean isAll) { // 传入 Application 表示这个是一个全局的 Toast new XToast(getApplication()) .setView(R.layout.toast_phone) .setGravity(Gravity.END | Gravity.BOTTOM) .setXOffset(100) .setYOffset(100) // 设置指定的拖拽规则 .setDraggable(new SpringDraggable()) .setOnClickListener(android.R.id.icon, new OnClickListener<ImageView>() { @Override public void onClick(XToast toast, ImageView view) { // 点击后跳转到拨打电话界面 Intent intent = new Intent(Intent.ACTION_DIAL); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); toast.startActivity(intent); } }) .show(); } @Override public void noPermission(List<String> denied, boolean quick) { new XToast(MainActivity.this) .setDuration(1000) .setView(R.layout.toast_hint) .setImageDrawable(android.R.id.icon, R.mipmap.ic_dialog_tip_error) .setText(android.R.id.message, "请先授予悬浮窗权限") .show(); } }); }
Example #2
Source File: MainActivity.java From EasyHttp with Apache License 2.0 | 5 votes |
@Override public void noPermission(List<String> denied, boolean quick) { if (quick) { ToastUtils.show("授权失败,请手动授予权限"); XXPermissions.startPermissionActivity(this, true); } else { ToastUtils.show("请先授予权限"); requestPermission(); } }
Example #3
Source File: MainActivity.java From EasyHttp with Apache License 2.0 | 5 votes |
@Override protected void onRestart() { super.onRestart(); if (XXPermissions.hasPermission(this, Permission.Group.STORAGE)) { hasPermission(null, true); } else { requestPermission(); } }
Example #4
Source File: MainActivity.java From EasyHttp with Apache License 2.0 | 5 votes |
/** * 安装 Apk */ private void installApk(final Context context, final File file) { XXPermissions.with(MainActivity.this) // 安装包权限 .permission(Permission.REQUEST_INSTALL_PACKAGES) .request(new OnPermission() { @Override public void hasPermission(List<String> granted, boolean isAll) { if (isAll) { Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); Uri uri; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { uri = FileProvider.getUriForFile(context, context.getPackageName() + ".provider", file); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); } else { uri = Uri.fromFile(file); } intent.setDataAndType(uri, "application/vnd.android.package-archive"); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } @Override public void noPermission(List<String> denied, boolean quick) { } }); }
Example #5
Source File: CameraActivity.java From AndroidProject with Apache License 2.0 | 5 votes |
@Override protected void initData() { // 启动系统相机 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (XXPermissions.isHasPermission(this, Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE, Permission.CAMERA) && intent.resolveActivity(getPackageManager()) != null) { mFile = getSerializable(IntentKey.FILE); if (mFile != null && mFile.exists()) { Uri imageUri; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { // 通过 FileProvider 创建一个 Content 类型的 Uri 文件 imageUri = FileProvider.getUriForFile(this, AppConfig.getPackageName() + ".provider", mFile); } else { imageUri = Uri.fromFile(mFile); } // 对目标应用临时授权该 Uri 所代表的文件 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); // 将拍取的照片保存到指定 Uri intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, CAMERA_REQUEST_CODE); } else { toast(R.string.photo_picture_error); finish(); } } else { toast(R.string.photo_launch_fail); finish(); } }
Example #6
Source File: PermissionsAspect.java From AndroidProject with Apache License 2.0 | 5 votes |
/** * 在连接点进行方法替换 */ @Around("method() && @annotation(permissions)") public void aroundJoinPoint(final ProceedingJoinPoint joinPoint, Permissions permissions) { XXPermissions.with(ActivityStackManager.getInstance().getTopActivity()) .permission(permissions.value()) .request(new OnPermission() { @Override public void hasPermission(List<String> granted, boolean all) { if (all) { try { // 获得权限,执行原方法 joinPoint.proceed(); } catch (Throwable e) { e.printStackTrace(); } } } @Override public void noPermission(List<String> denied, boolean quick) { if (quick) { ToastUtils.show(R.string.common_permission_fail); XXPermissions.gotoPermissionSettings(ActivityStackManager.getInstance().getTopActivity(), false); } else { ToastUtils.show(R.string.common_permission_hint); } } }); }
Example #7
Source File: MainActivity.java From XXPermissions with Apache License 2.0 | 5 votes |
public void requestPermission(View view) { XXPermissions.with(this) // 可设置被拒绝后继续申请,直到用户授权或者永久拒绝 //.constantRequest() // 支持请求6.0悬浮窗权限8.0请求安装权限 //.permission(Permission.REQUEST_INSTALL_PACKAGES) // 不指定权限则自动获取清单中的危险权限 .permission(Permission.Group.STORAGE, Permission.Group.CALENDAR) .request(new OnPermission() { @Override public void hasPermission(List<String> granted, boolean all) { if (all) { ToastUtils.show("获取权限成功"); }else { ToastUtils.show("获取权限成功,部分权限未正常授予"); } } @Override public void noPermission(List<String> denied, boolean quick) { if(quick) { ToastUtils.show("被永久拒绝授权,请手动授予权限"); //如果是被永久拒绝就跳转到应用权限系统设置页面 XXPermissions.startPermissionActivity(MainActivity.this); } else { ToastUtils.show("获取权限失败"); } } }); }
Example #8
Source File: MainActivity.java From XXPermissions with Apache License 2.0 | 5 votes |
public void hasPermission(View view) { if (XXPermissions.hasPermission(MainActivity.this, Permission.Group.STORAGE)) { ToastUtils.show("已经获取到权限,不需要再次申请了"); }else { ToastUtils.show("还没有获取到权限或者部分权限未授予"); } }
Example #9
Source File: MainActivity.java From EasyHttp with Apache License 2.0 | 4 votes |
private void requestPermission() { XXPermissions.with(this) .permission(Permission.Group.STORAGE) .request(this); }
Example #10
Source File: TestFragmentC.java From AndroidProject with Apache License 2.0 | 4 votes |
@SingleClick @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn_test_image1: mImageView.setVisibility(View.VISIBLE); GlideApp.with(this) .load("https://www.baidu.com/img/bd_logo.png") .into(mImageView); break; case R.id.btn_test_image2: mImageView.setVisibility(View.VISIBLE); GlideApp.with(this) .load("https://www.baidu.com/img/bd_logo.png") .circleCrop() .into(mImageView); break; case R.id.btn_test_image3: mImageView.setVisibility(View.VISIBLE); GlideApp.with(this) .load("https://www.baidu.com/img/bd_logo.png") .transform(new RoundedCorners((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, this.getResources().getDisplayMetrics()))) .into(mImageView); break; case R.id.btn_test_image4: PhotoActivity.start(getAttachActivity(), new PhotoActivity.OnPhotoSelectListener() { @Override public void onSelected(List<String> data) { mImageView.setVisibility(View.VISIBLE); GlideApp.with(getAttachActivity()) .load(data.get(0)) .into(mImageView); } @Override public void onCancel() { toast("取消了"); } }); break; case R.id.btn_test_toast: toast("我是吐司"); break; case R.id.btn_test_permission: XXPermissions.with(getAttachActivity()) // 可设置被拒绝后继续申请,直到用户授权或者永久拒绝 //.constantRequest() // 支持请求6.0悬浮窗权限8.0请求安装权限 //.permission(Permission.SYSTEM_ALERT_WINDOW, Permission.REQUEST_INSTALL_PACKAGES) // 不指定权限则自动获取清单中的危险权限 .permission(Permission.CAMERA) .request(new OnPermission() { @Override public void hasPermission(List<String> granted, boolean isAll) { if (isAll) { toast("获取权限成功"); } else { toast("获取权限成功,部分权限未正常授予"); } } @Override public void noPermission(List<String> denied, boolean quick) { if(quick) { toast("被永久拒绝授权,请手动授予权限"); //如果是被永久拒绝就跳转到应用权限系统设置页面 XXPermissions.gotoPermissionSettings(getAttachActivity()); } else { toast("获取权限失败"); } } }); break; case R.id.btn_test_setting: XXPermissions.gotoPermissionSettings(getAttachActivity()); break; case R.id.btn_test_state_black: if (getAttachActivity().getStatusBarConfig() != null) { getAttachActivity().getStatusBarConfig().statusBarDarkFont(true).init(); } break; case R.id.btn_test_state_white: if (getAttachActivity().getStatusBarConfig() != null) { getAttachActivity().getStatusBarConfig().statusBarDarkFont(false).init(); } break; default: break; } }
Example #11
Source File: MainActivity.java From XXPermissions with Apache License 2.0 | 4 votes |
public void startPermissionPage(View view) { XXPermissions.startPermissionActivity(MainActivity.this); }