Android6.0以上系统搜索不到 蓝牙BLE 设备问题

    最近开发一款软件,一开始一切顺利,但是在连接外围BLE 设备时,发现需要Location的权限,

 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    在AndroidManifest里面加上了权限,同时,大家知道安卓从6.0开始,对于一些敏感权限,需要运行时权限(除非targetApi设置小于23),所以也就配置了运行时权限。但是测试的时候还是发现了一些奇怪的问题,其中一台Android 6.0设备连接正常,但是另外一台Android 7.0的设备怎么都搜索不到外围设备。一开始还以为是7.0的系统又有什么奇怪的变化,后来经过一番搜索及测试,才发现是系统位置(Location)开关没打开。。。。。。原来如此,也就是说,从6.0开始,连接BLE设备不仅需要位置权限,还需要打开位置服务,所以对于相关软件,出于对用户体验性的考虑,可加入检测GPS开关是否打开,以及未打开时提示用户并打开相关页面的操作。代码如下:

   

    // gps是否可用  
       public static final boolean isGpsEnable(final Context context) {  
           LocationManager locationManager  
                   = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);  
           boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);  
           boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);  
           if (gps || network) {  
               return true;  
           }  
           return false;  
       }  

    //跳转到gps设置页
    Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);  
    activity.startActivityForResult(intent,requestCode);  


  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值