/BAAddPermissionTool

Primary LanguageJavaApache License 2.0Apache-2.0

##功能 学习时为了实践,写的小东西,不推荐使用!!!! 在使用运行时权限时处理多权限太复杂,就写个工具包,需要注意的是,你请求的权限, 必须在AndroidManifest.xml中声明 jar包下载地址:https://pan.baidu.com/s/1eRFrbR8

##使用前提

//在对应这两个包中的Activiy或者Fragment才能用
android.support.v7.app.AppCompatActivity;
android.support.v4.app.Fragment;

##对外提供的接口

  /**
     * @return AddPermission
     * @throws
     * @fuction 绑定context
     * @parm Activity或者Fragment
     */
    public static AddPermission with(@NonNull Object context) {
        target = context;
        return getInstance();
    }

    /**
     * @return AddPermission
     * @throws
     * @fuction 设置请求码
     * @parm 请求码
     */
    public AddPermission code(int code) {
        requestCode = code;
        return permissionBuilder;
    }

    /**
     * @return AddPermission
     * @throws
     * @fuction 设置请求的权限
     * @parm 权限
     */
    public AddPermission permissions(@NonNull String... permissions) {
       mPermissions=permissions;
        return permissionBuilder;
    }

    /**
     * @return
     * @throws
     * @fuction 开始请求权限
     * @parm
     */
    public void go() {
       request= new Request(target,requestCode,mPermissions);
    }

##使用方法

  • Activity和碎片使用方法一样
   public class MainActivity extends AppCompatActivity {

       @Override
       protected void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);

           Button button = (Button) findViewById(R.id.button);
           button.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   //请求权限
                   AddPermission.with(MainActivity.this)
                           .code(110)
                           .permissions(Manifest.permission.READ_EXTERNAL_STORAGE,
                                   Manifest.permission.CAMERA)
                           .go();
               }
           });
       }

       /**
        *@fuction 这个方法可以随便写名字,但是要声明注解: @Success
        * 请求权限成功后会自动回调该方法,小于安卓m的也是自动回调该方法
        *@parm 请求码
        *@return
        *@exception
        */
       @Success
       public void requestSuccess(int code) {
           if (code == 110)
               Toast.makeText(this, "请求权限成功", Toast.LENGTH_SHORT).show();
       }

       /**
        *@fuction 失败的时候回调的方法
        * 这个方法可以随便写名字,但是要声明注解:   @Fail
        *@parm
        *@return
        *@exception
        */
       @Fail
       public void requestFail(int code) {
           if (code == 110)
               Toast.makeText(this, "请求权限失败", Toast.LENGTH_SHORT).show();
       }
   }

##设置自定义的Dialog

直接调用函数即可,但是每一次的都要设置,无法全局设置,因为需要和Activity绑定,全局也不是不可以,但是我觉得没有必要