最新版本Sdk 23(andriod 6.0)以上,对于危险权限,需要用户手动申请。
危险权限
注意:扫描wifi需要定位权限,因为需要确定wifi的搜索位置。
dangerous permissions运行时的权限申请主要用到如下几个API。
Context.checkSelfPermission(String permission) 检查是否被授予了某个权限
Activity.requestPermissions(String[] permissions, int requestCode) 申请一组权限。requsetCode是针对onRequstPermissionResult方法而言的。
Activity.shouldShowRequestPermissionRationale(String permission) 判断是否需要显示申请此权限的原因,在应用第一次申请某个权限,或者用户对该权限请求授权界面选择了不再显示时此方法返回false,否则返回true。
Activity.onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) 权限申请结果回调
这四个都是从Android 6.0系统 (API Level 21)才开始有的new API,因此使用前都需要判断当前系统的版本是否是Android 6.0以上。