当前位置:首页 » 安卓系统 » android蓝牙模块

android蓝牙模块

发布时间: 2023-01-26 15:08:40

㈠ 关于android系统蓝牙都用什么模块,有单独的android驱动吗

Android系统的源码中蓝牙部分的分布式这样的:
1. App部分主要包括OPP和PBAP以及HFP,当然还有settings部分,代码分布如下:
(1) /packages/app/Bluetooth/src/com/android/bluetooth/opp
(2) /packages/app/Bluetooth/src/com/android/bluetooth/pbap
(3) /packages/app/Phone/src/com/android/phone/ 中和BT相关的部分,主要是HFHS打电话相关的
(4) /packages/app/Settings/src/com/android/settings/bluetooth/ 主要是蓝牙开启,搜索,配对等

2. Framework部分主要包括BluetoothAdapter,BluetoothService,BluetoothEventLoop,BluetoothA2dpService等核心类,代码分布如下:
(1)/frameworks/base/core/java/android/server/ 包含BluetoothService,BluetoothEventLoop等核心类,但是并没有向用户应用程序提供接口,属于系统的类。
(2)/frameworks/base/core/java/android/bluetooth 包含了BluetoothAdapter, BluetoothSocket, BluetoothServerSocket等一系列类,这些类是系统向应用程序提供的接口,编写蓝牙相关的应用程序时会用到这些类,检查BT是否打开,搜索设备等等。如果编写蓝牙应用程序,需要熟悉该部分类的功能。
(3) /frameworks/base/core/jni/ 中包含Bluetooth相关的文件,如 android_server_BluetoothService.cpp 该部分主要是java层和c/c++层进行通信的

3. Bluez部分,主要包括各个协议的实现,如A2dp,AVRCP,AVDTP,HID,HDP,PAN,DUN以及对BT host的实现,通过该部分向BT Controler部分发送HCI命令,代码分布服下:
/external/bluetooth/bluez

4. BluetDroid部分,主要用于开关蓝牙,芯片上电部分(不属于驱动,可以算是硬件抽象层(HAL)), 代码分布如下:
/system/bluetooth/

5. kernel部分,主要包括RFCOMM,L2CAP等协议以及HCI的实现,代码分布如下:
/kernel/net/bluetooth/

6. driver部分,该部分代码还真没了解过,代码分布:
/kernel/drivers/bluetooth/
另外,driver部分和具体芯片密切相关,有时在下面的目录下也会有:
/vendor/
/device/

㈡ Android要存储蓝牙模块发来的字符串,并且退出程序后,数据不会丢失,用什么办法可以做到呢谢谢。

你是要保存发过来的每个字符串呢,还是要保存最后一个呢。Android保存数据的方式有很多种,比如通过SharedPreference,数据库,File等等,其实不管是保存哪些数据,你只要按照你自己的需求将你想保存的数据通过这几种方式中的一种来保存就可以了。比如你把你的数据保存在手机存储卡的file中,在下次启动程序的时候去file中进行读取文件。主要是看你想通过哪种方式来保存你的数据了。

望采纳。

㈢ Android蓝牙模块连接后怎么接收数据

Android 蓝牙编程的基本步骤:
1.获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
如果BluetoothAdapter 为null,说明android手机没有蓝牙模块。
判断蓝牙模块是否开启,blueadapter.isEnabled() true表示已经开启,false表示蓝牙并没启用。
2.启动配置蓝牙可见模式,即进入可配对模式Intent in=new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
in.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 200);
startActivity(in); ,200就表示200秒。
3.获取蓝牙适配器中已经配对的设备Set<BluetoothDevice> device=blueadapter.getBondedDevices();
4.还需要在androidManifest.xml中声明蓝牙的权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
接下来就是根据自己的需求对BluetoothAdapter 的操作了。
有不明白的地方可以问问ITJOB Android的老师们。

㈣ android手机和蓝牙模块配对问题,求大虾们指导啊!!

什么手机,自作聪明生成蓝牙秘钥,不让手工输入?再找找有没有手工输入的地方。
一般是手机向蓝牙模块发起连接的,手机上要有SPP蓝牙串口通讯程序。
记得调试GC-09时,好像SPP蓝牙串口通讯程序集成了查找和配对的功能,可以输入PIN码。

㈤ Android 低功耗蓝牙(Ble) 开发总结

Android 从 4.3(API Level 18) 开始支持低功耗蓝牙,但是只支持作为中心设备(Central)模式,这就意味着 Android 设备只能主动扫描和链接其他外围设备(Peripheral)。从 Android 5.0(API Level 21) 开始两种模式都支持。

低功耗蓝牙开发算是较偏技术,实际开发中坑是比较多的,网上有很多文章介绍使用和经验总结,但是有些问题答案不好找,甚至有些误导人,比如 :获取已经连接的蓝牙,有的是通过反射,一大堆判断,然而并不是对所有手机有用,关于Ble传输速率问题的解决,都是默认Android每次只能发送20个字节,然而也并不是,,,下面进入正文。

这里用的是 Android5.0 新增的扫描API,

这里说一下,如果做蓝牙设备管理页面,可能区分是否是已连接的设备,网上又通过反射或其他挺麻烦的操作,也不见得获取到,官方Api 就有提供

与外围设备交互经常每次发的数据大于 mtu的,需要做分包处理,接收数据也要判断数据的完整性最后才返回原数据做处理,所以一般交互最少包含包长度,和包校验码和原数据。当然也可以加包头,指令还有其他完整性校验。下面分享几个公用方法:

我自己封装的一个BleUtil ,因为涉及跟公司业务关联性太强(主要是传输包的协议不同)就先不开源出来了,如果这边文章对大家有帮助反馈不错,我会考虑上传个demo到github供大家使用,
在这先给大家推荐一个不错 Demo ,里面除了没有分包,协议,和传输速率。基本的功能都有,而且调试数据到打印到界面上了。最主要是它可以用两个个手机一个当中心设备一个当外围设备调试。

首先传输速率优化有两个方向,1 外围设备传输到Android 。2 Android传输到外围设备。
我在开发中首先先使用上面那位仁兄的demo调试,两个Android 设备调试不延时,上一个成功马上下一个,最多一秒发11个20字节的包。

后来和我们的蓝牙设备调试时发现发送特别快,但是数据不完整,他蓝牙模块接收成功了,但是透传数据到芯片处理时发现不完整,我们的硬件小伙伴说因为 波特率 限制(差不多每10字节透传要耗时1ms)和蓝牙模块的buff (打印时是最多100byte,100打印的)限制,就算蓝牙模块每包都告诉你接收成功,也是没透传完就又接收了。后来通过调试每次发20K数据,最后是 Android 发是 20字节/130ms 稳定。给Android 发是 20字节/ 8ms 。 (天杀的20字节,网上都是说20字节最多了)

后来看了国外一家物联网公司总结的 Ble 吞吐量的文章(上面有连接),知道Android 每个延时是可以连续接收6个包的。就改为 120字节/ 16ms (为啥是16ms,不是每次间隔要6个包吗,怎么像间隔两次,这时因为波特率影响,多了5个包100字节,差不多 我们的单片机透传到蓝牙模块要多耗时不到10ms )
而Android 发数据可以申请 我们设备的mtu 来得到最多每次能发多少字节。延时还是130ms,即:241字节/ 130ms 提高12倍,这个速度还可以。

根据蓝牙BLE协议, 物理层physical layer的传输速率是1Mbps,相当于每秒125K字节。事实上,其只是基准传输速率,协议规定BLE不能连续不断地传输数据包,否则就不能称为低功耗蓝牙了。连续传输自然会带来高功耗。所以,蓝牙的最高传输速率并不由物理层的工作频率决定的。

在实际的操作过程中,如果主机连线不断地发送数据包,要么丢包严重要么连接出现异常而断开。

在BLE里面,传输速度受其连接参数所影响。连接参数定义如下:

1)连接间隔。蓝牙基带是跳频工作的,主机和从机会商定多长时间进行跳频连接,连接上才能进行数据传输。这个连接和广播状态和连接状态的连接不是一样的意思。主机在从机广播时进行连接是应用层的主动软件行为。而跳频过程中的连接是蓝牙基带协议的规定,完全由硬件控制,对应用层透明。明显,如果这个连接间隔时间越短,那么传输的速度就增大。连接上传完数据后,蓝牙基带即进入休眠状态,保证低功耗。其是1.25毫秒一个单位。

2)连接延迟。其是为了低功耗考虑,允许从机在跳频过程中不理会主机的跳频指令,继续睡眠一段时间。而主机不能因为从机睡眠而认为其断开连接了。其是1.25毫秒一个单位。明显,这个数值越小,传输速度也高。

蓝牙BLE协议规定连接参数最小是5,即7.25毫秒;而Android手机规定连接参数最小是8,即10毫秒。iOS规定是16,即20毫秒。

连接参数完全由主机决定,但从机可以发出更新参数申请,主机可以接受也可以拒绝。android手机一部接受,而ios比较严格,拒绝的概率比较高。

参考:
在iOS和Android上最大化BLE吞吐量
最大化BLE吞吐量第2部分:使用更大的ATT MTU

㈥ 在程序中如何设置 或者 如何初始化Android设备中蓝牙模块的波特率 ,其中下位机是arino。

首先,要建立好硬件的电路。模块接入5V电源,蓝牙模块的TXD脚接USB转串口模块的的RXD脚,RXD脚接USB转串口模块的TXD脚。电脑要和arino的串口转usb接口相连。
注意:此刻不要用你的电脑或者手机的蓝牙试图连接蓝牙模块。
其次,下载串口调试工具,安装好后打开。选择端口号和波特率(注意这个波特率是电脑与arino通过串口线通讯的波特率,不是你要设置的蓝牙波特率)
再次,AT指令集。先在发送行输入AT,看串口是否返回OK。如果成功,进行下一步:
这一步根据你蓝牙型号的不同会有差别。一般在发送行输入:AT+BAUD1,就会返回1200OK,说明设置1200比特率成功(BAUD1代表1200),根据你的蓝牙模块,这一步会略有不同。

㈦ Android蓝牙开发(二)经典蓝牙消息传输实现

上篇文章中,我们主要介绍了蓝牙模块,传统/经典蓝牙模块BT和低功耗蓝牙BLE及其相关的API,不熟悉的可以查看 Android蓝牙开发(一)蓝牙模块及核心API 进行了解。

本篇主要记录用到的经典蓝牙开发流程及连接通讯。

蓝牙连接前,给与相关系统权限:

安卓6.0以上系统要动态请求及获取开启GPS内容:

蓝牙核心对象获取,若获取对象为null则说明设备不支持蓝牙:

判断蓝牙是否开启,没有则开启:

蓝牙扫描:

取消扫描:

蓝牙监听广播,监听蓝牙开关,发现设备,扫描结束等状态,定义状态回调接口,进行对应操作,例如:监听到蓝牙开启后,进行设备扫描;发现设备后进行连接等。

客户端,与服务端建立长连接,进行通讯:

服务端监听客户端发起的连接,进行接收及通讯:

客户端连接及服务端监听基类,用于客户端和服务端之前Socket消息通讯,进行消息或文件的发送、接收,进行通讯关闭操作等:

我这里只是简单记录了项目中用到的蓝牙通讯,两个设备之间不通过配对进行连接、通讯。
相关详细内容及使用请查看Github项目: https://github.com/MickJson/BluetoothCS

蓝牙配对操作及其它内容,可以详细查看我下面的参考资料,写的十分详细,比如设备通过MAC地址,可以通过BluetoothAdapter获取设备,再通过客户端connect方法去进行连接等。

连接中遇到问题:read failed, socket might closed or timeout, read ret: -1。

通过改UUID,反射等方法都还是会出现错误。连接时,要确保服务端及客户端都处于完全断开状态,否则连接就会出现以上问题,但偶尔还是会有问题,期待有什么好的方法可留言告诉我。

参考资料:

Android-经典蓝牙(BT)-建立长连接传输短消息和文件

Android蓝牙开发—经典蓝牙详细开发流程

欢迎点赞/评论,你们的赞同和鼓励是我写作的最大动力!

㈧ syu android蓝牙连接方法

syu android蓝牙连接方法先展示代码结构。

蓝牙是一种无线数据与语音通信的开放性全球规范,它以低成本的短距离无线连接为基础,可为固定的或移动的终端设备提供廉价的接入服务。

蓝牙(Bluetooth)是一项短途无线电连接系统,它可以将不同的电子器材连系起来。原理就好像收音机一样,装有蓝牙的电子器材,可以接收外来的讯息,从而进行特定的指令。

蓝牙简介:

不过,蓝牙不但可以接收,也都可以“传送”,因此装有蓝牙的电子器材,能够互相沟通。现在,大部分的电脑配件,如打印机、荧幕等,都要接驳上电线,才可以互传讯息,但蓝牙透过其短途的接收系统,便可以使这些配件在没有驳线下,仍然能够传送指令,做到真正“无线”的世界。

头蓝技术实质内容是为固定设备或移动设备之间的通信环境建立通用的近距无线接口,将通信技术与计算机技术进一步结合起来,使各种设备在没有电线或电缆相互连接的情况下,能在近距离范围内实现相互通信或操作。蓝牙功能可以参考下面的操作打开使用,打开其他设备的蓝牙。

并使其对其他设备可见,打开下拉顶帘,点击蓝牙图标使其变为绿色,跳出提示框,勾选对其他设备可见。点击扫描,搜索到其他设备后,点击该设备名称,双方点确定后配对成功。选择要传输的文件,共享通过蓝牙即可传输文件。

㈨ android 怎么通过蓝牙向一个硬件发送AT指令

将16进制的字符串转换成bytes,通过hexstring2bytes转换,从而发送指令。

㈩ 关于android 蓝牙模块的问题

也行设备断开的时候,没有发相关的信息通知给手机吧??
蓝牙模块,我最近也在研究。。。
上面只是我的推测。。。

热点内容
我的世界斗罗大陆服务器网易手机 发布:2024-05-17 22:45:11 浏览:65
ideajar源码 发布:2024-05-17 22:40:30 浏览:785
易语言取名源码 发布:2024-05-17 22:40:12 浏览:645
存储巴士x250 发布:2024-05-17 22:21:30 浏览:569
别墅中央空调地暖如何配置最好 发布:2024-05-17 22:20:09 浏览:930
php安装mbstring 发布:2024-05-17 22:09:56 浏览:471
单向板中配置哪些钢筋 发布:2024-05-17 22:09:16 浏览:798
winftp下载 发布:2024-05-17 21:51:33 浏览:694
压缩板包装 发布:2024-05-17 21:44:59 浏览:265
安卓大屏怎么安装手机卡 发布:2024-05-17 21:39:09 浏览:754