首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android BLE 蓝牙开发,连接蓝牙设备进行通讯

针对低功耗蓝牙通讯,Android 4.3(API 18)开始引入了 BLE 库。我们可以直接使用 Android SDK 中的蓝牙 BLE 库,而不用额外导入依赖库。...而使用BLE库,我们可以直接通过蓝牙设备的UUID进行连接(通过GATT服务),在当前应用内就能直接连接了。而不用通过系统设置。...第二个传参autoConnect:是一个boolean值对象,false代表直接连接到蓝牙设备。true代表蓝牙设备可用时自动连接。...3.8 写数据到蓝牙设备中 我们如果想将内容推送到蓝牙设备中,发现服务的时候onServicesDiscovered 遍历特性中,确保是用于写消息的特性对象。...(PS:有些安全性要求比较高的设备,还是会需要主动进行PIN码配对。PIN配队就只能通过系统设备界面中的蓝牙功能项进行操作了。) 通过GATT服务连接成功

2.4K20

Android项目实战(三十四):蓝牙4.0 BLE设备连接

最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据。   查询了很多资料终于实现,现进行总结。...4.0 设备并获取数据的 Demo   注:如果不想看实现过程的,直接看最下面的demo源码即可,或每一步相关操作步骤的完整代码。   ...一、Demo需求     1、搜索设备 , 选择多个要连接设备。     2、开始连接,显示数据。   ...显示 所有扫描到的设备的MAC地址,点击状态 ''已选择' or '‘未选择’ 之间改变,表明当前设备有没有加入到需要连接设备集合中      2、扫描按钮      3、结束扫描按钮      4...连接开始,显示连接设备的数据。(注意,这里是按我的传感器来的。实际需要换成你所用到的设备的 数据 转换公式!) 如有问题,欢迎右侧加群。

5K70
您找到你想要的搜索结果了吗?
是的
没有找到

成功解决Android设备adb连接显示device unauthorized

一、提出问题 电脑通过USB连接新的Android设备,想要通过adb来进行一些操作时,却发现命令提示符上输入下面命令显示设备未授权的信息也就是"unauthorized" adb devices...二、不可行的解决方案 有人提出的解决方案是打开Android设备的开发者选项中的USB调试,但笔者之前已经打开了,由此可知问题并不与此相关。...Android设备撤销USB调试授权 点击Android设备的开发者选项中的撤销USB调试授权,笔者认为此举在于去掉之前的设置,方便之后重新操作。...3.Android设备重连计算机 如果此时Android设备仍通过USB线连接计算机,需要先拔掉,接着再重新插入使其重连计算机 4.输入adb相关指令 Android设备重连计算机计算机的命令提示符依次输入下面三个指令...: adb kill-server adb start-server 5.Android设备重新授权 输入完上面两条指令Android设备会弹出授权弹窗,点击确定即可 6.重新输入adb指令 进行完上面的步骤就可以重新输入指令

2.4K20

【错误记录】Android 应用连接 BLE 设备无法读取数据 ( 可以写出数据 | 无法读取数据 )

文章目录 一、问题描述 二、问题分析 三、完整设置代码 一、问题描述 ---- Android 应用连接 BLE 硬件设备 , 出现如下情况 : 发送数据成功 : Android 应用 向 BLE 硬件设备发送数据..., 成功 ; 接收数据失败 : Android 应用 无法接收到 BLE 硬件设备发送给手机的数据 ; 二、问题分析 ---- 举个栗子 : 这是 Google 官方的 BLE 蓝牙示例程序 BluetoothLeGatt...中的 BLE 连接配置代码 : /** * Enables or disables notification on a give characteristic...mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); } 代码文件地址 : BluetoothLeService.java 上述代码是遍历完..., 便可接收 BLE 蓝牙设备的数据 ;

1.3K00

Android BLE 快速上手指南

示例代码 外围设备 中央设备 开始 接下来我们就准备开始实际操作了,首先我们准备2台手机,手机A作为中央设备,手机B作为外围设备,在打开B手机的ble广播,我们使用A手机进行打开蓝牙-->扫描-->连接...-->获取服务,特征-->打开通知-->写特征-->读特征-->断开连接,通过这些步骤我们就能学会Android Ble 的基本方法的使用。...注意坑来了: 我们调用连接断开连接这两方法的时候最好放到主线程调用,否则可能会在一些手机上遇到奇怪的问题 获取服务,特征 当我们连接成功,GATT客户端(手机A)可以通过发现方法检索GATT服务端...,因此,可以收到断开连接的回调关闭GATT客户端。...如果断开连接没调用close方法,多次重复连接-断开之后可能你就再也连不上设备了。

2.4K20

Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

角色 和 职责 (1) 四种角色 Android 设备BLE 设备互动时, 设备的角色 和 职责 :  -- 中心设备 和 外围设备 : 这个角色体系适用于 BLE 连接....外围设备角色 发送广播. -- GATT 服务器 和 GATT 客户端 : 这个决定了两个设备之间, 一旦建议连接, 如何进行互相通信. (2) 中心设备 和 外围设备 BLE 连接需要两种设备都存在...如果智能腕表 想要从手机上接受更新数据, 那么 Android 手机就是 GATT 服务器. -- 手机 和 设备 都可以作为 GATT 服务器 和 客户端 : 本文档中使用的示例代码, Android...连接到 GATT 服务 (1) 连接指定 BluetoothDevice 蓝牙设备 连接指定设备 :  -- 连接到 GATT 服务 : 与 BLE 设备交互的第一步是 连接BLE 设备中的 GATT...关闭 APP 中的 BLE 连接 关闭 BLE 设备连接 :  -- 关闭方法 : 一旦结束了 BLE 设备的使用, 调用 BluetoothGatt 的 close() 方法, 关闭 BLE 连接,

5.4K30

Android BLE 基础框架全新改版

Android BLE基础操作框架,基于回调,操作简单。包含扫描、多连接、广播包解析、服务读写及通知等功能。...该库提供了多设备连接管理,可配置最大连接数量,并在超过最大连接数时会依据 Lru 算法自动断开最近最久未使用设备。该库还定制了常用的扫描设备过滤规则,也支持自定义过滤规则。...更多关于广播包解析可以参考Android BLE学习笔记中数据解析部分。...每连接成功一款设备都会在设备镜像池中添加一款设备镜像,该设备镜像是维护设备连接成功所有操作的核心类,断开连接时会将该设备镜像从镜像池中移除,如果连接设备数量超过配置的最大连接数,那么设备镜像池会依据...Lru 算法自动移除最近最久未使用设备断开连接

2K70

蓝牙开发经验总结

开发建议:如果要对多个设备发起连接请求,最好是有一个同一个的设备连接管理,把发起连接请求序列化起来。前一个设备请求建立连接,后面请求队列中等待。如果连接成功了,就处理下一个连接请求。...或者用标志位来标志状态 4、BLE设备的建立和断开连接的操作,例如 BluetoothDevice.connectGatt(), BluetoothGatt.connect(), BluetoothGatt.disconnect...开发建议:对 BluetoothGatt 的连接断开请求,都通过发送消息到 Android 的主线程中,让主线程来执行具体的操作。...5、Android 作为中心设备,最多只能同时连接 6 个 BLE 外围设备(可能不同的设备这个数字不一样),超过 6 个,就会连接不上了。...现在 BLE 设备越来越多,其实并不够用,所以开发的过程中,需要特别的谨慎使用。

89720

10分钟完成一个最最简单的BLE蓝牙接收数据的DEMO

这两天研究蓝牙,网上有关蓝牙的内容非常有限,Github上的蓝牙框架也很少很复杂,为此我特地写了一个最最简单的DEMO,实现BLE蓝牙接收数据的问题, 不需要什么特定的UUID, 不需要什么断开重连,...不需要什么多连接等等, 网上都把BLE蓝牙写的好复杂好复杂,那不是我想要的,我只想为新手提供一个最基本的例子 注意: 1.本DEMO运行前提是蓝牙已经配对成功,如果想实现自动配对可以期待我的下一篇文章...2.修改代码中的“你想要接收数据的已配对设备名称”为你真实的蓝牙设备 3.复制粘贴下面的代码,日志TAG是“BLE” 代码: <uses-permission android:name="android.permission.BLUETOOTH...bondedDevice.getName().trim())) { connectDevice(bondedDevice); } } } //连接设备...break; } } return characteristic; }} 对,就是这么简单,一个类足以,接下来就可以Android

2.1K20

H5+APP设备升级android10不能启动了

h5+.jpg 基于MUI 、H5+开发的APP安卓设备升级到Android10无法启动,点击图片没反应!! 经查得知Android10,plus获取设备信息等一些操作不在支持了。...同样的代码原来版本的HX中可以直接真机调试运行在Android10设备上,可正常启动未发现其他异常。由于我是离线打包的,所以断定打包过程一些api无法用了。...但是官方的基座可以老版本HX上直接运行在Android10上,推测基座版本和HX关系不大,应该是最新的。 所以我们的APP要重新打包发布了。...更新工具 HBuilderX(2.6.16.20200424) Android-SDK@2.4.6.71983_20191211 Android Studio 3.5.2 重新打包 替换新的sdk libs...Android10的更新,DCloud官方一些api不能用了直接造成已有的APP不能启动。感觉这是个挺大的bug!

86430

Android Ble蓝牙App(五)数据操作

bleCore.isConnected()) showMsg("设备断开连接") when (operateName) { READ -> {}...当一个BLE设备(称为客户端)需要获取另一个BLE设备(称为服务器)上的数据时,可以使用Ble Read操作。客户端向服务器发送读取请求,并等待服务器返回所请求的数据。...Ble Write(带回复的写操作):当一个BLE设备(称为客户端)想要向另一个BLE设备(称为服务器)发送数据时,可以使用Ble Write操作。...一、概念 Ble Enable Notify是指在蓝牙低功耗(BLE)通信中使能通知功能的操作。当设备之间建立了蓝牙连接设备可以通过特征(Characteristic)来交换数据。...bleCore.isConnected()) showMsg("设备断开连接") Log.d("TAG", "onPropertyOperate: ${characteristic.uuid

80630

Android 低功耗蓝牙开发(扫描、连接

Android 6.0以后的系统BLE scan需要申请location的相关权限才能支持BLE的一些功能,比如发现附近的beacons设备。   这是开发的时候必须用到的权限,并非权限滥用。...五、连接设备   连接Ble设备其实也很简单,难的是连接之外的东西,先来构想一下连接功能的业务逻辑,点击设备列表中的设备,进行连接,先显示一个加载布局,表示现在正在连接,然后停止扫描,根据设备的mac...地址去连接这个设备,然后连接设备的回调中处理连接设备的结果。...下面新增一个方法,用来连接设备点击设备列表Item的时候调用。...有连接设备就自然有断开连接设备

2.6K40

蓝牙项目开发流程

0参考代码 蓝牙(BLE)模块及协议.pdf:电脑内,有助于理解ble BLE蓝牙Android开发中的应用 - Android移动开发技术文章_手机开发 - 红黑联盟 Android...答:是 43连多个ble设备 如何读取一次,我连接的多个设备的 rssi 值_百度知道 44服务一直在后台运行 停止当前服务:Process.killProcess(Process.myPid...int a = 3; System.out.println(String.format("%02d", a)); 56自动连接上次蓝牙设备 Android IM(五)连接断开重连 - zyxNobita...-CSDN论坛-CSDN.NET-中国最大的IT技术社区 关于用nexus 4 开发BLE应用过程,有时候会出现连接蓝牙设备时连不上,除非在设置里把蓝牙关调再重新打开蓝牙,然后再连设备才能连接,这是什么问题...BLE应用过程数据写入自动断开的问题-CSDN论坛-CSDN.NET-中国最大的IT技术社区 60如何判断两个时间相差多少天,参数为String JAVA 比较两个日期相差的天数 - shiyuezhong

3.4K100

Android BlueToothBLE入门(二)——设备连接和通讯(附Demo源码地址)

——《微卡智享》 本文长度为7870字,预计阅读12分钟 前言 接《Android BlueToothBLE入门(一)——低功耗蓝牙介绍》上篇,这篇文章主要就是来做Demo实现Android两台设备的数据通讯...微卡智享 01 目录及使用的组件 整个Demo的目录上图中已经做了说明,其中最核心的是BlueToothBLEUtil类,这是把这个Demo中用到的BLE蓝牙方法都放到这里了,因为中心设备(Client...,和判断是否有相关的蓝牙权限写了一个函数调用 蓝牙权限 检测是否有相关权限 调用蓝牙API时先检测是否有对应的权限 像扫描设备连接设备时需要知道返回的结果,用到了回调,那类中直接就是传入相磁的.../** * 添加Gatt 服务和特征 * 广播是广播,只有添加Gatt服务和特征连接才有服务和特征用于数据交换 */ //获取Gatt服务 fun...let { it.disconnect() //调用close()连接时传入callback会被置空,无法得到断开连接时onConnectionStateChange

39330

Android Ble蓝牙App(二)连接与发现服务

,所以我们就先重写这两个函数,注意一点的是,蓝牙的操作都是子线程中进行的,如果我们需要知道当前是否连接,则需要写一个接口用于回调到Activity中,ble包下新建一个BleCallback接口,代码如下所示...close() mGatt = null } } } 回调中,连接成功和断开连接都会有一个对应的状态码...device对象,这在前一篇已经写好了,拿到device对象之后调用BleCore的connect()函数进行连接设备onCreate()函数中进行BleCore的赋值,然后设置Ble的回调,实现BleCallback...接口,重写里面的函数,当连接成功之后会通过回调deviceInfo()得到设备状态,因为是子线程所以ui线程中渲染UI。...从这个效果图来看,我们连接成功之后有状态,点击断开连接也会有状态改变,那么连接就写好了。

51610

Android低功耗蓝牙BLE开发小结

BLE及相关协议 BLE是蓝牙4.0标准的一部分,旨在解决传统蓝牙连接慢、能耗大的问题,GoogleAndroid 4.3(API 18)中引入了对BLE的支持。...,Android 6.0(API 23)及以上的设备中使用该权限需要动态申请。...Android BLE相关类 BluetoothAdapter:Android设备的蓝牙适配器,可执行基本的蓝牙任务,如启动、停止设备发现,查询已配对设备,获取蓝牙适配器状态,使用MAC地址实例化蓝牙设备类...API 18,也可使用BluetoothManager实例获取适配器实例。 若获取到的值为null,则该设备不支持蓝牙。...也就是一个 BLE 外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见了。当设备断开,它又开始广播。 7.

5.5K561

Android Ble蓝牙App(四)UI优化和描述符

android:text="暂无蓝牙设备,请点击页面左上角蓝牙图标按钮,进入扫描页面,选择设备连接后进行操作" android:textColor="@color/gray...android:padding="8dp" android:text="断开连接" android:textColor="@color/white"...,那么下面我们修改MainActivity中的代码,因为默认是显示的,所以可以连接蓝牙设备发现服务之后就隐藏这个布局,修改如下图所示: 然后就是断开连接的回调时,显示空内容布局,再清空服务列表,刷新适配器...,当设备的蓝牙服务和特性不属于SIG定义的,是厂商自定义时,我们最好就显示完成的UUID,为了方便使用,ble包下新建一个BleConstant类,代码如下所示: object BleConstant... BLE 应用中,Descriptor 充当了配置和元数据信息的重要角色,帮助设备之间准确地交换和理解数据。

18730

Android Ble蓝牙App(六)请求MTU与显示设备信息

一、请求MTU的概念    AndroidBLE(Bluetooth Low Energy)开发中,requestMtu 是一个用于请求修改 BLE 连接的最大传输单元(MTU)的方法。...通过调用 requestMtu 方法,你可以请求增加或减少 BLE 连接中的 MTU 大小。较大的 MTU 可以提高数据传输效率,因为每个数据包可以携带更多的数据。...bleCore.isConnected()) { showMsg("设备断开连接") return false } when...bleCore.isConnected()) { showMsg("设备断开连接") return false } when...itemtoolbar有空间的时候显示Toolbar上,没有空间的时候就在菜单弹窗里面,我们先弄一个断开连接的图标,drawable下创建一个ic_disconnect.xml,代码如下所示: <

92830

iOS开发之BLE(二)——外设连接断开

iOS开发之BLE(一)——理论知识一文中,主要对iOS开发中BLE的基本理论知识进行了介绍,本文以中心模式为例讲解蓝牙的连接过程,并进行案例实践。...对其进行标记或者存储到外设数组中 选择外设进行连接 断开连接 案例 本文案例以一个UITableView展示周围可用的外设,通过点击UITableViewCell选择外设进行蓝牙的连接,通过点击按钮进行蓝牙的断开...// 表格展示所有可连接设备 var tabView : UITableView!...{ print("didDisconnectPeripheral") } } 运行结果 手机界面,对三个设备进行连接断开操作 ?...后台打印.png 注意问题 一定要真机测试 断开的时候,一定要将 self.peripheral赋值为nil,否则第一次连接之后就再也连接不上了

2.9K20
领券