Android6.0改版的时候,加入了一个很变态的东西:在清单文件中的权限声明毛用不顶,还得再运行的时候重新申请,美其名曰:运行时权限。然后我用了一天才搞明白……MDZZ。
一、这些都是要重新声明的:
二、运行时权限的申请
1、检测权限
2.请求权限
3.处理权限请求结果
注意
1、在fragment中请求权限,回调在Activity中,可以将回调给指定的fragment。
2、在TabHostActivity中的Activity回调实现类中。还有一种直接在主Activity中申请所有权限
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.VIBRATE,Manifest.permission.INTERNET, Manifest.permission.ACCESS_WIFI_STATE,Manifest.permission.WAKE_LOCK, Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS,Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.READ_PHONE_STATE,} , 1);}