Skip to content

第一版简单的封装Android动态权限

Latest
Compare
Choose a tag to compare
@pengqun1123 pengqun1123 released this 09 Oct 09:43

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录制的很不好,哎。。。将就着看吧