Skip to content

采用AOP+APT+Annotation实现的Android动态权限申请库,简化权限申请与结果处理流程。

Notifications You must be signed in to change notification settings

Solinzon/PermissionManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PermissionManager

安卓动态权限申请库

AOP部分基于Lancet实现  

使用方式:

1.引入依赖

annotationProcessor 'com.solinzon:permissionmanager-compiler:1.0.1-beta1'
compile 'com.solinzon:permissionmanager:1.0.1-Beta1'

2.添加Lancet支持

在根目录的 build.gradle 添加:

dependencies{
    classpath 'me.ele:lancet-plugin:1.0.4'
}

在 app 目录的build.gradle 添加:

apply plugin: 'me.ele.lancet'

3.使用示例

1.在需要请求权限的Activity上添加@NeedPermission注解。
如:

@NeedPermission
public class MainActivity extends AppCompatActivity {}

2.调用PermissionManager.requestPermissions()方法申请权限。 如:

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	PermissionManager.requestPermissions(this,new String[]{Manifest.permission.CAMERA,Manifest.permission.WRITE_EXTERNAL_STORAGE});

}

3.定义权限申请结果的回调方法,并加上相应注解。(方法名字可任意,但不可带参数)。
如:

    @OnGranted
    void onGranted(){
        Toast.makeText(this, "YES!用户同意了授权!", Toast.LENGTH_SHORT).show();
        Log.d(TAG, "YES!用户同意了授权!");
    }
    @OnDenied
    void onDenied(){
        Toast.makeText(this, "oh NO!用户拒绝了授权!", Toast.LENGTH_SHORT).show();
        Log.d(TAG, "oh NO!用户拒绝了授权!");
    }

    @OnShowRationale
    void onShowRationale(){
        Toast.makeText(this, "用户选择了了不再询问!", Toast.LENGTH_SHORT).show();
        Log.d(TAG, "用户选择了了不再询问");
    }

完整示例:点击这里

注意事项

处在开发阶段,还有许多TODO尚未完成,仅仅适合与学习交流。暂不适合用于生产环境。

About

采用AOP+APT+Annotation实现的Android动态权限申请库,简化权限申请与结果处理流程。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages