android申请蓝牙动态权限,Android权限动态申请
Android 6.0以后一些權限只在清單文件中申請是不能使用的,所以要動態申請,如:相機權限、內存卡讀寫權限、通話狀態權限等,但是當使用到才申請用戶體驗太差,所以就在進入到首頁或啟動頁時統一申請使用的所用權限。
一、首先要在清單文件中注冊權限(動態申請的權限也需要先在清單文件中注冊)
二、在首頁Activity中申請
final int REQUEST_PERMISSION_LOCATION = 10;
private void initPermission() {
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED ||(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_CALENDAR)
!= PackageManager.PERMISSION_GRANTED ||(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_CALENDAR)
!= PackageManager.PERMISSION_GRANTED ||(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED)))){
// 沒有權限
ActivityCompat.requestPermissions(MainActivity.this, new String[]{
Manifest.permission.READ_CALENDAR,
Manifest.permission.WRITE_CALENDAR,
Manifest.permission.CAMERA,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE},
REQUEST_PERMISSION_LOCATION);
} else {
// startService(new Intent(this, LocationService.class));
// startIntent();
}
}
三、返回碼,如果在啟動頁申請權限,可以在這里做跳轉操作
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults) {
switch (requestCode) {
case REQUEST_PERMISSION_LOCATION:
// startService(new Intent(this, LocationService.class));
// startIntent();
break;
default:
// startIntent();
break;
}
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
總結
以上是生活随笔為你收集整理的android申请蓝牙动态权限,Android权限动态申请的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2013-1-30 六级词汇造句
- 下一篇: 斗破手游服务器显示未开放,《斗破苍穹》手