蓝牙扫描必要条件及高德定位授权
真的很坑,蓝牙需要定位
说明:以下信息是方案制定的依据。
蓝牙扫描需要条件:
a. 打开系统蓝牙开关。(必须)
b. 允许定位权限。(Android6.0及以上)
c. 打开定位开关。(少数手机)
定位开关只在极少数手机上需要,并且软件也无法判断哪些手机扫描蓝牙必须要打开定位开关。
所以不能预先去判断没打开定位开关就不去扫描。
目前是将其作为扫描失败的一种可能性通过弹框报错的方式提示用户。
系统api提供2种方式打开蓝牙开关:
a 静默打开。蓝牙权限被禁止后此方式失效。
mBluetoothAdapter.enable();
b 发送Intent打开。(目前农行即采用此方式)
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
enableBtIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(enableBtIntent);
高德定位检测,授权
//动态申请权限startprivate void myRequetPermission() {//1、首先声明一个数组permissions,将需要的权限都放在里面String[] permissions = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.CAMERA,Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CHANGE_WIFI_STATE,Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS};//2、创建一个mPermissionList,逐个判断哪些权限未授予,未授予的权限存储到mPerrrmissionList中List<String> mPermissionList = new ArrayList<>();if (Build.VERSION.SDK_INT >= 23) {//逐个判断你要的权限是否已经通过for (int i = 0; i < permissions.length; i++) {if (ContextCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {mPermissionList.add(permissions[i]);//添加还未授予的权限}}//申请权限if (mPermissionList.size() > 0) {//有权限没有通过,需要申请ActivityCompat.requestPermissions(this, permissions, 1);} else {//说明权限都已经通过,可以做你想做的事情去mPermissionList.clear();//清空没有通过的权限}LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);if (gps || network) {Log.e("定位权限", "成功");}else {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_BACKGROUND_LOCATION}, 12);//自定义的code}}}
蓝牙扫描必要条件及高德定位授权相关推荐
- 蓝牙网关与IBeacon室内定位方案对比,谁会成为室内定位的主流-新导智能
作为室外定位向室内环境的延伸,室内定位领域的研究机构也做出了很多的努力.蓝牙在生活中的使用越来越多,除了比较了解的音响.鼠标外,无论是在家居中的蓝牙插座.蓝牙灯.蓝牙温湿度等还是在企业级使用中,如养老 ...
- android ble蓝牙接收不到数据_Android BLE蓝牙扫描不到数据及解决方法
在低功耗蓝牙(BLE)开发过程中碰到过不少坑,作为记录总结一下在开发过程中关于开启扫描遇到的问题. 开发低功耗蓝牙过程中因为Android系统的不断升级和优化,关于BLE的开发也会在升级过程中遇到不同 ...
- Android有官方的GPS定位API,为什么还要使用百度/高德定位SDK ?
1. 背景 小组在一个Demo项目中,图省事准备使用官方的GPS定位API. 但在我的印象中,官方的定位API是不好用的,一般都是用 高德地图/百度地图 的定位SDK的. 使用官方的定位API获取定位 ...
- MASA MAUI Plugin IOS蓝牙低功耗(三)蓝牙扫描
项目背景 MAUI的出现,赋予了广大Net开发者开发多平台应用的能力,MAUI 是Xamarin.Forms演变而来,但是相比Xamarin性能更好,可扩展性更强,结构更简单.但是MAUI对于平台相关 ...
- android专题-蓝牙扫描、连接、读写
android专题-蓝牙扫描.连接.读写 概念 外围设备 可以被其他蓝牙设备连接的外部蓝牙设备,不断广播自身的蓝牙名及其数据,如小米手环.共享单车.蓝牙体重秤 中央设备 可以搜索并连接周边的外围设备, ...
- 蓝牙扫描工具btscanner修复暴力扫描模式
2019独角兽企业重金招聘Python工程师标准>>> 蓝牙扫描工具btscanner修复暴力扫描模式 在btscanner 2.1-5版本中,当用户按下快捷键b,执行暴力扫描模式, ...
- 基于图文界面的蓝牙扫描工具btscanner
基于图文界面的蓝牙扫描工具btscanner btscanner是Kali Linux内置的一款蓝牙扫描工具.它提供图文界面,更便于渗透测试人员查看扫描信息.该工具会自动使用主机所有的蓝牙接口,并提供 ...
- Android定位开发之百度定位、高德定位、腾讯定位,三足鼎立一起为我所用!
这几天的项目不是非常紧.于是想为未来可能要做的项目做一些技术储备. 下一个项目非常有可能是定位开发,须要用到手机定位功能,于是查了查如今比較流行的第三方定位,最火的基本上就是百度定位>高德定位& ...
- 【转】Android bluetooth介绍(三): 蓝牙扫描(scan)设备分析
原文网址:http://blog.csdn.net/xubin341719/article/details/38584469 关键词:蓝牙blueZ A2DP.SINK.sink_connect.s ...
最新文章
- WebSocket 实战
- 伯克利论断:Serverless 才是云时代的主宰
- python列表中的冒号_python 列表中[ ]中冒号‘:’的作用
- 【APICloud系列|37】 银联支付的实现
- Angular1.63 绑定数据与继承
- 手动制造报错_告别手动录入数据的错误,Excel多级下拉菜单怎么制作?
- 使用pkg打包编译nodejs程序,手动设置缓存内容
- 《JavaScript设计模式 张》整理
- mysql 外键详解_mysql 中的外键key值的详解
- android遍历图片,Android获取手机所有图片并显示
- 照着官网来安装openstack pike之glance安装
- 【云服务器】阿里云服务器+宝塔Linux零成本搭建全网音乐搜索引擎网站(在线音乐播放器),可在线播放可下载可分享它不香么?
- Linux的目录结构及对应目录下存放的内容
- RGBA 与 RGB 色彩模式差异
- 全球定位经纬度的方法现在是GPS等系统定位,以前是指南针罗盘六分仪
- 如何用python编写抢票软件哪个好_又到疯狂抢票的高峰期,用python写一个简单的12306抢票软件...
- Emacs中学习gdb调试
- 木兰词·拟古决绝词柬友(引用)
- 用pygame做一个简单的python小游戏---七彩同心圆
- nmn是真的还是假的,如何鉴别高质量的nmn,方法一览
热门文章
- CASIA步态能量图像数据库
- SpringSecurity(二十)---OAuth2:实现资源服务器(上)资源服务器搭建以及直接调用授权服务器模式
- 小学生到底要不要学奥数 学奥数的利弊分析!
- 网站建设提高实用性的几个建议
- 武汉理工转专业计算机笔试,计算机学院武汉理工大学2009年各学院转专业工作实施细则...
- 罗永浩一个坑位卖60万脏钱背后:放下面子赚钱,才是成年人最大的体面
- ios android 同服 游戏,安卓IOS刚兴起时,那些装机必备的休闲游戏,到今天也是同类TOP...
- elasticsearch创建索引映射
- 【牛客网】网易2017内推笔试编程题合集(二)
- 了解数据库的作用、特点及关系型数据库管理系统