android 6.0 权限需要动态获取,一直觉得比较麻烦,后来发现PermissionsDispatcher 使用起来比较方便。
重点是结合这个库的android studio插件,点一点就可以自动插入代码了。
首先在android studio安装以下插件
然后在在project的 build.gradle中添加
buildscript {
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
在app build.gradle中添加
apply plugin: 'android-apt'
dependencies {
compile 'com.github.hotchemi:permissionsdispatcher:${latest.version}'
apt 'com.github.hotchemi:permissionsdispatcher-processor:${latest.version}'
}
latest.version 当前是2.2.0
然后在你需要添加权限请求的activity里点击右键->generate->generate runtime permissions 如下图所示
生成以下代码
@RuntimePermissions
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@NeedsPermission(Manifest.permission.READ_CALENDAR)
void readCalendar() {
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);
}
}