安卓6.0增加了权限控制,方便了用户,却难为了开发者。
权限控制这块,代码量相对较大,且大部分都是重复的劳动,因此需要进行封装。github上也有许多已经封装好的工具。
PermissionsDispatcher是其中一款star较多的工具(https://github.com/hotchemi/PermissionsDispatcher)。
在使用中可能会发现,demo中有很多类似于MainActivityPermissionsDispatcher这样的对象,一直找不到引用而编译不通过。
实际上这个对象是在编译之后才会生成的,因此必须先编译后调用。
具体做法是,在使用了该权限的类中,如MainActivity中,权限控制的几个方法重写之后,先编译,编译通过之后,再调用MainActivityPermissionsDispatcher.showCameraWithCheck(this);语句即可。