美文网首页APP开发实战
APP开发实战82-Android动态权限申请

APP开发实战82-Android动态权限申请

作者: xjbclz | 来源:发表于2016-07-17 16:57 被阅读181次

21.2动态权限申请

直接使用Android系统的函数实现动态权限申请比较麻烦,目前也有许多开源库实现此功能,其中easypermissions使用比较简单。

示例代码如下:

//build.gradle中添加库

dependencies{

compile'pub.devrel:easypermissions:0.1.7

}

publicclass MainActivity extends Activity implements

EasyPermissions.PermissionCallbacks {

private static final String TAG ="MainActivity";

private static final intRC_CAMERA_STORAGE_PERM = 110;

@Override

protected void onCreate(BundlesavedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findViewById(R.id.button_selectImage).setOnClickListener(newView.OnClickListener() {

@Override

public void onClick(View v) {

selectImageTask ();

}

});

@AfterPermissionGranted(RC_CAMERA_STORAGE_PERM)

public void selectImageTask() {

String[] perms = {Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE };

if(EasyPermissions.hasPermissions(getContext(), perms)) {

// Have permission, do the thing!

getImage();

} else {

// Ask for one permission

EasyPermissions.requestPermissions(this,getString(R.string.rationale_camera_storge),

RC_CAMERA_STORAGE_PERM,perms);

}

}

@Override

public void onRequestPermissionsResult(intrequestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions,grantResults);

// EasyPermissions handles the requestresult.

EasyPermissions.onRequestPermissionsResult(requestCode,permissions, grantResults, this);

}

@Override

public void onPermissionsGranted(intrequestCode, List perms) {

//Log.d(TAG,"onPermissionsGranted:" + requestCode + ":" +perms.size());

}

@Override

public void onPermissionsDenied(intrequestCode, List perms) {

//Log.d(TAG,"onPermissionsDenied:" + requestCode + ":" + perms.size());

// (Optional) Check whether the userdenied permissions and checked NEVER ASK AGAIN.

// This will display a dialog directingthem to enable the permission in app settings.

EasyPermissions.checkDeniedPermissionsNeverAskAgain(this,

getString(R.string.rationale_ask_again),

R.string.mine_setting,R.string.cancel, perms);

}

}

相关文章

  • APP开发实战82-Android动态权限申请

    21.2动态权限申请 直接使用Android系统的函数实现动态权限申请比较麻烦,目前也有许多开源库实现此功能,其中...

  • android 6.0权限动态申请

    Android 6.0系统一个最大的特性就是动态权限申请。在android 6.0以前,我们APP开发中对权限的处...

  • 动态权限获取流程

    一. 简介 Android 6.0 以上系统,权限分为普通权限和危险权限,危险权限需要APP 动态申请,交由用户来...

  • 第二十五周 动态权限

    话题:动态权限 描述下 Android 的动态权限:这些权限的分类是什么?哪些权限必须要动态申请?请给出权限申请的...

  • Android Wifi相关操作

    Android WIFI 参考链接 android开发中Wifi功能总结 概念 相关权限 权限说明动态申请andr...

  • Android快速开发库之动态权限框架JPermission

    JPermission是Android开发中动态权限申请框架,AOP切面方式,使用AspectJ切入来实现权限的申...

  • Android蓝牙开发

    BLE开发 版本兼容6.0之后动态申请权限Manifest.permission.ACCESS_COARSE_LO...

  • 超详细 —— 自己动手撸一个Android动态权限申请库

    前言 在App的开发中我们离不开动态权限申请,官方的写法是在Activity回调结果,虽然很标准,但是很繁琐。今天...

  • Android动态权限

    和以前在安装 APP 的是就申请了权限不同,Google 在 API 23,也就 6.0 之后加入了动态权限。对于...

  • 悬浮窗权限

    权限 1、注册权限 2、动态申请权限 API19以后需要动态申请权限,API23以前默认是开放的,但是个别厂商自己...

网友评论

    本文标题:APP开发实战82-Android动态权限申请

    本文链接:https://www.haomeiwen.com/subject/coxpjttx.html