Android Unity串接Bluetooth开发

这篇具有很好参考价值的文章主要介绍了Android Unity串接Bluetooth开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前在和Unity对接蓝牙开发(和theme,brightness后面发博客进行讲解),现在将这一块梳理下。目前我这边的流程是android端做接口,然后unity调用android的接口进行下面一些操作,此外还有android主动调用unity的情况。
蓝牙主要分五大块

1.开启(关闭)蓝牙
2.获取设备列表(广播)
3.连接(广播)
4.断开(广播)

下面一个个讲解。
1.开启蓝牙
BluetoothAdapter…enable()进行开启
disable()进行关闭

2.获取设备列表(广播)
进入首页开启开关后,Unity会调用android的一个接口来开启获取设备列表(在我那个工程定义为startScan),然后会注册一个广播

        intentFilter.addAction("android.bluetooth.device.action.FOUND");
        intentFilter.addAction("android.bluetooth.adapter.action.DISCOVERY_FINISHED");

通过以上两个action来接收不断增加的附近蓝牙,随后在onReceive进行判断,将NativeDevice信息传给Unity,Unity根据此结构将蓝牙列表显示出来。

3.连接(广播)
3.1.判断蓝牙状态是否开启
3.2.构建Receiver监听配对请求和连接状态

        intentFilter.addAction("android.bluetooth.device.action.BOND_STATE_CHANGED");
        intentFilter.addAction("android.bluetooth.device.action.PAIRING_REQUEST");

3.3.根据绑定状态(android.bluetooth.device.extra.BOND_STATE)的state去回调相应的方法,比如onPairSuccess对应state = 12 ,onPairFail对应state = 10,另外由于我这边需要屏蔽系统配对弹窗,由Unity显示弹窗,所以接收到android.bluetooth.device.action.PAIRING_REQUEST这个情况下,我们需要abortBroadcast从而能中断系统弹出配对框,接着回调给Unity,将配对码传过去显示。(配对完之后就会根据state 为12 或者 10 或者其他,进行调用不同的接口)
3.4.通过一开始初始化的mAdapter.getRemoteDevice,传入NativeDevice中存在的address来构建BluetoothDevice对象
3.5.再用mBluetoothHeadsetClient,mBluetoothPBAPClient,mBluetoothA2DPClient,mBluetoothMAPClient去建立连接(这四个对象都需要在init里进行初始化),这样就建立了连接

4.断开(广播)
和3过程类似文章来源地址https://www.toymoban.com/news/detail-478356.html

到了这里,关于Android Unity串接Bluetooth开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Bluetooth | 蓝牙配对源码分析

    好厚米们,我又来了! 这次分享的是 蓝牙设备执行配对动作时Android源码的执行流程。 下面先来说下, 应用层是如何发起蓝牙配对的: ( ps:大多数业务逻辑,都是扫描到可用设备后,点击可用设备 - 发起配对。) 这里我直接略过点击可用设备的步骤哈,扫描到第一个可用

    2024年02月06日
    浏览(54)
  • 深入了解Android蓝牙Bluetooth【基础+进阶】

    也可以说是蓝牙技术。所谓蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,是由爱立信公司公司发明的。利用“蓝牙”技术,能够有效地简化掌上电脑、笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化以上这些设备与因特网Internet之间的通

    2024年02月05日
    浏览(46)
  • Android Bluetooth(一)——蓝牙的开启和搜索

    Android 平台包含蓝牙网络堆栈支持,此支持能让设备以无线方式与其他蓝牙设备交换数据。应用框架提供通过 Android Bluetooth API 访问蓝牙功能的权限。这些 API 允许应用以无线方式连接到其他蓝牙设备,从而实现点到点和多点无线功能。 Android 应用可通过 Bluetooth API 执行以下操

    2024年01月16日
    浏览(45)
  • 【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程

    我的圈子: 高级工程师聚集地 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强企业! 创作理念:专注分享高质量嵌入式文章,让大家读有所得! 大家好,我是董哥! 随着物联网技术的快速发展, WiFi 、蓝牙成了物联网通信主

    2024年01月18日
    浏览(35)
  • Android Studio 简要实现蓝牙(Bluetooth)通信(附加作业)

    1.两台设备可以通过蓝牙进行通信 2.模拟Client 和Server端实现简单的通信。 如果想让应用启动设备发现或操纵蓝牙设置,则除了 BLUETOOTH 权限以外,还必须声明 BLUETOOTH_ADMIN 权限。大多数应用只是需利用此权限发现本地蓝牙设备。除非应用是根据用户请求修改蓝牙设置的“超级

    2024年02月03日
    浏览(52)
  • Android蓝牙使能流程图(Android Bluetooth enable) -- java & jni层

    在介绍Android enable流程之前,我们首先来看下Android的流程图 以上图示是android8以上的,主要跟Android8之前的架构在于Bluetooth stack跟vendor层之间增加一层HIDL,主要是抽象硬件层的作用 OK,回归主题,我们来看下Android的enable流程,首先上一张架构图 另外声明下:我们做了一些列

    2024年02月09日
    浏览(45)
  • Bluetooth 开发科普

    Controller运行在蓝牙芯片上,host运行在主控上,两芯片通过硬件通信接口(uart或usb),进行通信连接(HCI)。 实际使用中有不同场景,根据场景需求,SIG定义了不同的规范(Profile),对于Controller只关心数据收发,不用用户场景,所以有了host端的L2CAP规范,屏蔽上层不同用户

    2024年02月13日
    浏览(37)
  • RK3288 Android11 RTL8723DS WiFi 和 蓝牙Bluetooth 适配

      瑞芯微RK系列对“REALTEK瑞昱公司”的wifi、蓝牙双模的模组都有内置适配的,因此HAL层、Framework层、协议栈及库文件都不需要移植适配,只需修改设备树和一些配置文件即可。 补充: RTL8723DS时钟输入源讲解   RTL8723DS模组的第24号引脚是模组的时钟输入源,需要给此提供

    2024年02月07日
    浏览(79)
  • MTK Android13 user版本进入engineermode的Bluetooth测试项时闪退

    平台:MT6771 android13 问题描述:进入到工模,点击进入Bluetooth测试项直接闪退 Log如下: 从日志咱们可以看到: 很明显这个服务没有注册,找到编译规则s0_vnd/device/mediatek/vendor/common/device.mk,可以看到以下: 可以看到只有在编译eng,userdebug版本时会编译em_hidl,那在编译规则中加

    2024年02月05日
    浏览(50)
  • 【Bluetooth蓝牙开发】九、BLE协议之GATT

    个人主页:董哥聊技术 我是董哥,嵌入式领域新星创作者 创作理念:专注分享高质量嵌入式文章,让大家读有所得!   【所有文章汇总】  

    2024年01月22日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包