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

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);

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容