首页
学习
活动
专区
圈层
工具
发布

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin版

前言   之前写了一个蓝牙的小Demo,看的人还是有一些的,也有人私信我说,在学Kotlin,能不能出一版Kotlin的博客讲述这个蓝牙开发,这个想法还是不错的,不过就怕写了没有人看,因为在国内Kotlin...[在这里插入图片描述] 没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、...当然不是,首先要看你的设备是否支持蓝牙,其次蓝牙是否打开,最后才是扫描蓝牙 于是里面的代码就可以这样写 /\*\* \* 扫描蓝牙 \*/ fun scanBluetooth...isEnabled) { //打开 //开始扫描周围的蓝牙设备,如果扫描到蓝牙设备,通过广播接收器发送广播 if (mAdapter...显示蓝牙设备信息 /\*\* \* 显示蓝牙设备信息 \* \* @param context 上下文参数 \* @param intent 意图

5.8K10

Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin版

Kotlin版 蓝牙开发 (扫描设备、绑定、解绑) 前言   之前写了一个蓝牙的小Demo,看的人还是有一些的,也有人私信我说,在学Kotlin,能不能出一版Kotlin的博客讲述这个蓝牙开发,这个想法还是不错的...没错,这就是Kotlin语言的Android项目,和Java还是有区别的,建议了解了Kotlin的语法再看文章会比较好,当然你也可以对照我写的Android 蓝牙开发(扫描设备、绑定、解绑)Java版来看...当然不是,首先要看你的设备是否支持蓝牙,其次蓝牙是否打开,最后才是扫描蓝牙 于是里面的代码就可以这样写 /** * 扫描蓝牙 */ fun scanBluetooth(view...isEnabled) { //打开 //开始扫描周围的蓝牙设备,如果扫描到蓝牙设备,通过广播接收器发送广播 if (mAdapter !...显示蓝牙设备信息 /** * 显示蓝牙设备信息 * * @param context 上下文参数 * @param intent 意图 */

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

    Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版

    低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版 前言 正文 一、配置项目 二、页面设计 三、扫描设备 ① 绑定视图 ② 检查Android版本 ③ 打开蓝牙 ④ 请求权限 ⑤ 扫描结果 ⑥ 设备适配器编写...,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...扫描之前要判断Android版本,6.0及以上需要动态请求权限,请求之后要判断蓝牙是否打开,蓝牙打开权限也有了就可以点击扫描蓝牙开始扫描了,扫描时显示加载条表示正在扫描,扫描到设备后添加到列表中,页面上渲染出来...后面我就直接写Kotlin代码,不熟悉的可以留言提问,事先声明我的Kotlin很菜,所以可读性相对来说高一些。 从上面的方法中可以知道逻辑就是Android6.0以上就请求权限,以下就打开蓝牙。...,如果都打开了就可以开始进行扫描蓝牙的操作了,在扫描之后先要确定蓝牙设备需要什么信息。

    2K21

    Android 低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版

    低功耗蓝牙开发(扫描、连接、数据交互)Kotlin版 前言 正文 一、配置项目 二、页面设计 三、扫描设备 ① 绑定视图 ② 检查Android版本 ③ 打开蓝牙 ④ 请求权限 ⑤ 扫描结果 ⑥ 设备适配器编写...,再加上我也想写一些关于Kotlin的内容,对于低功耗蓝牙的Java版的,我写了两篇,一个是扫描、连接,另一篇就是数据交互,而这篇Kotlin文章我会减少讲解的环节,更多的注重业务逻辑和UI以及Kotlin...扫描之前要判断Android版本,6.0及以上需要动态请求权限,请求之后要判断蓝牙是否打开,蓝牙打开权限也有了就可以点击扫描蓝牙开始扫描了,扫描时显示加载条表示正在扫描,扫描到设备后添加到列表中,页面上渲染出来...后面我就直接写Kotlin代码,不熟悉的可以留言提问,事先声明我的Kotlin很菜,所以可读性相对来说高一些。 从上面的方法中可以知道逻辑就是Android6.0以上就请求权限,以下就打开蓝牙。...,如果都打开了就可以开始进行扫描蓝牙的操作了,在扫描之后先要确定蓝牙设备需要什么信息。

    3.4K31

    PermissionX 1.6发布,支持Android 12,可能是今年最大的版本升级

    Github上有一个功能可以统计当前开源项目的代码所使用的编程语言占比分别是多少。经过这个版本的重构之后,PermissionX中Kotlin语言的占比已经达到了85%以上。...之前的Android系统中有一个很奇怪的现象,当我们在应用中使用蓝牙扫描附件设备的时候,需要申请地理位置权限。 蓝牙权限并不是运行时权限,但地理位置权限却是。...这就给很多开发者造成了一些困扰,明明只是想要使用蓝牙的功能,却让用户误以为想要定位设备的地理位置。 这个问题在今年的Google I/O大会上有专门提及。...从Android 12开始,过去的蓝牙权限被拆分成了3个新的权限,并且全都是运行时权限: BLUETOOTH_SCAN 用于使用蓝牙扫描附件其他的蓝牙设备 BLUETOOTH_ADVERTISE 用于允许当前的设备被其他的蓝牙设备所发现...BLUETOOTH_CONNECT 用于连接之前已经配对过的蓝牙设备 不过这3个权限都是从Android 12系统才开始有的,所以为了能够兼容过去的老版本,建议在AndroidManifest.xml

    1K10

    APP蓝牙通信的开发

    在开发APP的蓝牙通信功能时,以下是非代码层面的关键步骤和注意事项。1.明确需求功能需求:确定需要实现的功能,如数据传输、设备控制等。设备兼容性:确保支持目标设备的蓝牙版本(如BLE)。...Android:使用Android Bluetooth API或BluetoothGatt。3.权限配置iOS:在Info.plist中添加蓝牙权限描述。...Android:在AndroidManifest.xml中声明蓝牙权限。4.蓝牙设备扫描扫描设置:确定扫描参数,如扫描时间、设备过滤条件。设备发现:处理发现的设备信息,如名称、信号强度。...传输方式:选择合适的传输方式,如写入、通知或指示。8.错误处理常见错误:处理连接失败、数据传输错误等。重试机制:在必要时实现重试逻辑。9.用户界面设备列表:展示扫描到的设备。...10.测试与调试设备测试:在不同设备上测试兼容性。场景测试:模拟各种使用场景,如信号弱、设备断开。11.安全与隐私数据加密:确保数据传输安全。用户隐私:遵守相关隐私政策。

    26710

    手机APP与蓝牙通讯的测试

    1.测试框架(1)Android平台Android Bluetooth API:通过模拟蓝牙设备或使用真实设备进行测试。Espresso:用于UI测试,验证蓝牙连接和数据传输的界面交互。...设备连接:验证APP能否成功连接目标设备。测试连接超时、重试机制。数据传输:验证APP能否正确发送和接收数据。测试大数据量传输的稳定性。断开连接:验证APP能否正常断开连接。测试异常断开后的处理逻辑。...4.测试环境真实设备:使用多种品牌和型号的手机及蓝牙设备进行测试。模拟环境:使用模拟工具创建不同的蓝牙场景(如信号弱、设备断开等)。...网络环境:测试在不同网络环境(如Wi-Fi、蜂窝网络)下的蓝牙功能表现。5.测试用例示例(1)设备搜索用例:验证APP能否搜索到附近的蓝牙设备。步骤:打开APP并启用蓝牙功能。启动设备搜索。...(3)异常场景用例:验证APP在蓝牙信号弱时的表现。步骤:将手机与蓝牙设备的距离拉远,模拟信号弱场景。检查APP是否提示信号弱或断开连接。恢复信号后,检查APP能否自动重连。

    56510

    【Android 应用开发】BluetoothDevice详解

    需要权限 android.permission.BLUETOOTH : 允许程序连接到已配对的蓝牙设备, 请求连接/接收连接/传输数据需要改权限, 主要用于对配对后进行操作; android.permission.BLUETOOTH_ADMIN...常量介绍 广播的小规律 : 根据广播的名称可以猜测广播的类型, 如果广播常量名称后面带着ED, 是过去时, 那么这个广播是需要注册接收的广播, 如ACTION_DISCOVERY_STARTED, 这是蓝牙设备开始搜索发出的广播...: android.bluetooth.device.action.ACL_DISCONNECTED,与远程设备断开ACL连接后发出的广播, 包含EXTRA_DEVICE附加域, 需要BLUETOOTH..., 底层发出断开连接请求,ACL连接即将断开; 友好的断开连接时都会发出这个广播, 低级连接即将断开的时候, 应该马上中断高级连接; 需要BLUETOOTH权限; (2)远程设备的其它广播常量 String...ACTION_BOND_STATE_CHANGED : android.bluetooth.device.action.BOND_STATE_CHANGED, 远程蓝牙设备状态改变的时候发出这个广播,

    2.1K30

    Android BLE 基础框架全新改版

    该库提供了多设备连接管理,可配置最大连接数量,并在超过最大连接数时会依据 Lru 算法自动断开最近最久未使用设备。该库还定制了常用的扫描设备过滤规则,也支持自定义过滤规则。...-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/> 因为蓝牙在 6.0 以上手机使用了模糊定位功能,所以需要添加模糊定位权限。...BluetoothLeDeviceStore 管理,而单个设备信息都统一放到BluetoothLeDevice中,其中包含了设备的所有信息,如设备名称、设备地址、广播包解析信息等,设备的相关信息会在设备详情中进行介绍...Lru 算法自动移除最近最久未使用设备并断开连接。...ViseBle 中封装了几个常用的 API,如:开始扫描与停止扫描、连接与断开连接、清除资源等,该库提供的功能尽量简单易用,这也正是该项目的宗旨。

    2.2K70

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

    前言   之间我写过蓝牙开发的文章,只不过是针对于经典蓝牙,可以理解为普通蓝牙,连接的对象是经典蓝牙,列如手机蓝牙、蓝牙耳机等设备。...运行之后点击开始扫描按钮,就会扫描附近的低功耗蓝牙设备,(请在附近有已打开低功耗蓝牙时进行扫描)可以在日志栏处进行打印。 ? 这里很明显,扫描到了一些蓝牙设备,并且很多设备没有设备名称。...rvDevice.setLayoutManager(new LinearLayoutManager(this)); //启用动画 deviceAdapter.setAnimationEnable(true); //设置动画方式...有连接设备就自然有断开连接设备。...再新建一个断开连接的方法,代码如下: /** * 断开设备连接 */ private void disconnectDevice() { if (isConnected

    3.1K40

    基于51设计的宠物防丢系统(蓝牙+Android上位机)

    一、环境介绍 单片机型号: STC89C52 编程软件: keil5 编程语言: C语言 手机APP: 采用QT设计,程序支持跨平台编译运行(Android、IOS、Windows、Linux都可以编译运行...与手机通信的蓝牙采用:HC05 串口蓝牙。 功能介绍: 防丢功能主要是依靠蓝牙来判断是否已经断开。 1. 开发板复位后,蓝牙如果未连接状态,5秒之后蜂鸣器就会报警 2....蓝牙一旦连接成功后,就需要以300ms的频率向设备发送指定的数据,保活。 3. 如果蓝牙连接上之后,没有发送数据到设备,300ms之后蜂鸣器就会报警。 4. APP上可以手动点击触发报警 5....单片机按下复位键可以清除报警 APP界面: 如果自己不想焊接,想要直接模块化搭建环境,可以直接淘宝买系统板+模块即可: 蓝牙HC05是主从一体的蓝牙串口模块,简单的说,当蓝牙设备与蓝牙设备配对连接成功后...为了简化51单片机的编程代码,可以先使用电脑串口调试助手,将HC05的的参数配置完毕,再接到51单片机上。 将HC05蓝牙配置成从机模式,设置好配对密码。

    1.1K20

    Android Ble蓝牙App(一)扫描

    Ble蓝牙App(一)扫描 前言   关于低功耗的蓝牙介绍我已经做过很多了,只不过很多人不是奔着学习的目的去的,拿着源码就去运行,后面又发现连接设备后马上断开,然后不会自己看问题,这个现象就是快餐式的,...至于为什么使用Kotlin,稳固一下,不然太久不用就会生疏,文本我们讲述的是扫描,你可能回想,一个扫描有什么好写,不就是开始、结束、显示设备嘛?至于单独作为一个功能来写一篇文章嘛?...,在Kotlin中如果要对ViewBinding进行封装的话同时利用上Kotlin的一些特性的话,可以这样做,原文地址如下:Viewbinding使用和委托封装,感觉写得蛮好的,太久没用Kotlin了,...="16dp" android:text="从 Android 6.0 Marshmallow 开始,应用程序需要位置权限才能扫描低功耗蓝牙设备。"...= "Unknown device", //蓝牙设备真实名称 var macAddress: String, //蓝牙设备Mac地址 var rssi: Int, //信号强度

    1.6K60

    原生 Android App 开发的优势

    原生 Android App 开发是指使用 Google 官方推荐的编程语言(主要是 Kotlin 或 Java)和集成开发环境 (IDE) Android Studio 来构建专门运行在 Android...以下是原生 Android App 开发的主要优点:卓越的性能和响应速度: 原生 Android 应用直接编译为设备可执行的代码,并直接与 Android 操作系统和硬件交互,没有中间的抽象层。...这使得应用运行速度更快、响应更及时、动画更流畅,特别是在处理计算密集型任务、复杂界面或高性能要求的应用(如游戏和图形处理应用)时,性能优势尤为突出。...全面访问设备功能: 原生应用可以完全访问 Android 设备的所有硬件和软件功能,包括相机、GPS、传感器(如加速计、陀螺仪)、蓝牙、NFC、指纹识别、面部解锁以及最新的系统 API 和功能。...更高的安全性: 原生 Android 应用可以利用 Android 系统提供的各项安全特性,如权限管理、沙盒机制、数据加密 API 等。

    22410

    【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )

    / iOS , 各自开发本平台的应用 ; Android 使用 Android Studio 开发环境 , Java / Kotlin / C / C++ 语言 , 开发 Android 平台的应用...蓝牙 , 摄像头 , 传感器 缺点 : 成本高 , 需要 Android / iOS 两个团队开发 版本发布慢 , 更新版本成本高 , 用户可能会拒绝更新版本 上架需要审核 , Google Play...蓝牙 , 摄像头 , 传感器 , 日历 , GPS , NFC 等等 , 也无法调用 JNI 层的 C / C++ 相关高性能功能 , 如高性能音频 AAudio , OpenGL , OpenSL 等..., 如摄像头 , 蓝牙 , 传感器 等 无法访问本地文件 , 如数据库 , SD 卡 , SP 等 三、Hybrid 应用 ---- 混合应用 , Hybrid App , 一部分是原生应用 , 一部分是...Web 应用 ; 综合 Web 应用 和 原生应用的优点 , Web 应用容易开发 , 跨平台 , 原生应用性能高 , 可以调用 蓝牙 , 摄像头等 原生设备 ; 可以综合 原生应用 与 Web 应用的优点

    1.9K30

    微信小程序|API扫码及蓝牙的使用

    has founded' ) console . dir( devices ) }) 另外:开发者工具和 Android 上获取到的deviceId为设备 MAC 地址,iOS上则为设备 uuid...其次是获取所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备 WX . getBluetoothDevices({ success : function (res) { console.log...(res ) } }) 3、总结 本篇中,主要是在蓝牙得使用方面,在此仅仅介绍了蓝牙功能中得几个基本方面,而在微信小程序中,蓝牙的调入使用设置是多种多样的,包括(根据 uuid 获取处于已连接状态的设备...,监听寻找到新设备的事件,断开与低功耗蓝牙设备的连接)等功能,需要在使用更于完善的小程序中进行设置使用。...END 主 编 | 张祯悦 责 编 | 陈宇杰 ----微信号:算法与编程之美

    1.3K10

    微信小程序 BLE 基础业务接口封装

    低功耗模式下的传输速度上限为 2Mbps,适合于影音级应用,如高清晰度音频解码协议的应用。...蓝牙特征值 GATT(Generic Attribute Profile)协议定义了蓝牙设备之间的通信方式,其中单个服务(Service)可以包含多个特征值(Characteristic),每个服务和特征值都有特定的‌...小程序接口封装 需要知道的是,虽然蓝牙是开放协议,但由于苹果 IOS 系统的封闭设计,目前苹果设备无法与 Android 及其它平台设备通过蓝牙相连。 本文描述皆基于 Android 平台。...:断开连接; wx.closeBluetoothAdapter:关闭小程序蓝牙模块; 关闭设备蓝牙。...蓝牙连接异常', NOTIFY_CHARACTERISTIC_VALUE_CHANGE: '注册特征值变化异常', WRITE: '发送数据异常', DISCONNECT: '断开蓝牙连接异常

    51710

    Android BLE 快速上手指南

    本文旨在提供一个方便没接触过Android上低功耗蓝牙(Bluetooth Low Energy)的同学快速上手使用的简易教程,因此对其中的一些细节不做过分深入的探讨,此外,为了让没有Ble设备的同学也能模拟与设备的交互过程...注:Android从4.3(API Level 18) 开始支持低功耗蓝牙,但是刚开始只支持作为中央设备(central)模式,从 Android 5.0(API Level 21) 开始才支持作为外围设备...打开蓝牙 打开蓝牙有以下两种方式: //方法一 BluetoothManager bluetoothManager= (BluetoothManager) getSystemService...因此,使用哪种方式需要大家根据自己的外围设备决定,大家可以尝试把示例工程中的这一行注释掉然后在来写入数据,结合日志看看会能更好的理解。...如果断开连接后没调用close方法,在多次重复连接-断开之后可能你就再也连不上设备了。

    2.8K20

    带你解锁蓝牙skill(一)

    2,Android各版本与蓝牙profile关系 首先明确一下,目前市面上的Android机的源码大致跟三方面有关系(只考虑蓝牙profile) Google推出的各Android系统:所支持的蓝牙协议...所以本文从Android源码的角度分析各Android版本与蓝牙profile。...如果向已经和其他设备连接的蓝牙设备发送设备,依旧能够成功,但是接收方的当前连接会被断开,被与Sender的文件传输所取代。 如果已经满足文件传输条件,则准备上传文件 ?...在这种情况下,双方均可以主动断开互联网连接。...当消费者选择要买之后,此时可能在买卖过程中发生矛盾,商人不想卖了或者消费者不想买了都会结束本次交易(即断开设备间的互联网连接)。道理一致。 ? 好了,继续!!!

    1.6K80
    领券