V1.0.0版本:
封装Android动态权限供外部简单调用!
***************************使用==========》
1.第一步:在项目的build.gradle里边添加仓库地址
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2.第二步:在module的build.gradle里边添加依赖
Add the dependency
dependencies {
compile 'com.github.15827348069:GMPermission:28dbfd9c24'
}
使用的核心代码:
//获取申请权限的对象
GMPermissions gmPermissions = GMPermissions.instance();
gmPermissions.setPermissionCallBackExcute(this);
selectImgBtn.setOnClickListener(v -> {
//检查权限,没有则申请权限 --->从Android 4.2开始向上兼容
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
/**
* 例如读取文件权限,将权限数组作为参数传进去
*/
GMPermissions.skipPermissionActivity(DemoActivity_01.this,
PermissionC.WR_FILES_PERMISSION);
}
});
以下是demo示例的Activity代码:
public class DemoActivity_01 extends AppCompatActivity implements GMPermissions.PermissionCallBackExcute {
private ImageView mShowIv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo_01);
Button selectImgBtn = findViewById(R.id.selectImgBtn);
mShowIv = findViewById(R.id.showIv);
//获取申请权限的对象
GMPermissions gmPermissions = GMPermissions.instance();
gmPermissions.setPermissionCallBackExcute(this);
selectImgBtn.setOnClickListener(v -> {
//检查权限,没有则申请权限 --->从Android 4.2开始向上兼容
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
/**
* 例如读取文件权限,将权限数组作为参数传进去
*/
GMPermissions.skipPermissionActivity(DemoActivity_01.this,
PermissionC.WR_FILES_PERMISSION);
}
});
}
@Override
public void excutePermissionCodes() {
//这里执行 获取权限后的操作
//选择图片
new GMSelectImg().picImgsOrVideo(this, PermissionC.PIC_IMG_VIDEO_CODE, 1);
}
//这是获取权限后执行代码接受到的结果,需要的也可以封装进来。这里不做封装,只封装动态权限请求部分
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//获取结果
switch (requestCode) {
case PermissionC.PIC_IMG_VIDEO_CODE:
//选择图片的结果
if (resultCode == Activity.RESULT_OK) {
List<Uri> mSelected = Matisse.obtainResult(data);
//设置选择的图片
GlideUtil.loadImageWithLocation(DemoActivity_01.this,
mSelected.get(0), mShowIv);
}
break;
}
}
}
gif录制的很不好,哎。。。将就着看吧