Android M(6.0)扫描不到蓝牙设备的处理办法

解决办法:
1,在清单文件加入权限:


 
 
[html] view plain copy
  1. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>   
  2. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>  

2,在Activity中调用 requestPermissions() 方法来请求权限,系统会弹出需要请求权限的对话框
3,重写Activity的onRequestPermissionsResult()方法,接收权限是否请求的请求状态
示例代码如下:

 
 
[java] view plain copy
  1. private static final int PERMISSION_REQUEST_COARSE_LOCATION = 1;  
  2.   
  3. @Override  
  4. protected void onCreate(Bundle savedInstanceState) {  
  5.     ......  
  6.     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {  
  7.         // Android M Permission check  
  8.         if (this.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {  
  9.             requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, PERMISSION_REQUEST_COARSE_LOCATION);  
  10.         }  
  11.     }  
  12. }  
  13.   
  14. @Override  
  15. public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {  
  16.     switch (requestCode) {  
  17.         case PERMISSION_REQUEST_COARSE_LOCATION:  
  18.             if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {  
  19.                 // TODO request success  
  20.             }  
  21.         break;  
  22.     }  
  23. }  
注:
第2、3步骤在targetSdkVersion大于等于23(6.0)时必须添加,小于23时可以不用添加。所以另外一种处理办法是只加权限,然后把targetSdkVersion设置到23以下也能达到同样的效果,不过用户可以在权限管理中禁止了该权限,一样会搜不到设备。
另外在Android 6.0上对应用权限进行授权是发生在应用运行时,而不是在安装时。同时用户也可以在应用程序设置中撤销对应用的权限授权。因此当要获取敏感权限(如相机、联系人)时最好先检查用户是否授予了改权限,如果没授予给出提示框提醒用户授予。
http://blog.csdn.net/u010134293/article/details/52808832
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值