蓝牙开发教程安卓,Android蓝牙开发——实现蓝牙聊天

蓝牙开发教程安卓目录

蓝牙开发教程安卓

Android蓝牙开发——实现蓝牙聊天

安卓开发 蓝牙 后台

Android 蓝牙开发(三)-蓝牙的详细介绍

蓝牙开发教程安卓

    蓝牙开发教程安卓包含以下几个步骤:

    1. 准备工作:首先需要安装Android Studio,这是官方推荐的安卓开发工具,提供了丰富的开发环境和工具。此外,开发者需要了解蓝牙协议,包括蓝牙设备的配对、连接和通信方式等。

    2. 创建项目:在Android Studio中创建一个新的安卓项目,并进行一些基本的配置,如应用名称、包名等。在创建项目的过程中,需要选择最低支持的Android版本和目标设备,以确保应用的兼容性。

    3. 添加蓝牙权限:在AndroidManifest.xml文件中添加蓝牙权限,以便应用程序能够访问蓝牙功能。常用的蓝牙权限包括BLUETOOTH、BLUETOOTH_ADMIN、ACCESS_COARSE_LOCATION等。

    4. 初始化蓝牙适配器:在应用程序中,需要先初始化蓝牙适配器,以便后续的蓝牙操作。可以通过BluetoothAdapter类的getDefaultAdapter()方法来获取蓝牙适配器的实例。

    5. 搜索蓝牙设备:通过调用蓝牙适配器的startDiscovery()方法,可以开始搜索附近的蓝牙设备。在搜索过程中,可以注册一个BroadcastReceiver来接收搜索结果。

    7. 数据传输:在蓝牙连接建立后,可以通过获取BluetoothSocket的输入输出流来进行数据传输。可以使用InputStream和OutputStream来读取和写入数据。

    8. 处理蓝牙事件:在蓝牙开发中,需要处理各种蓝牙事件,如设备的连接状态变化、数据的接收等。可以通过注册BroadcastReceiver来监听这些事件,并根据需要进行相应的处理。

    9. 优化和测试:在完成蓝牙开发后,需要对应用进行优化和测试。可以通过优化代码、减少资源消耗等方式来提高应用的性能和稳定性。同时,还需要进行充分的测试,确保应用在各种情况下都能正常工作。

    按照这些步骤进行开发,开发者可以实现各种蓝牙功能,为用户提供更好的移动应用体验。

Android蓝牙开发——实现蓝牙聊天

与蓝牙开发主要的相关类是以下四个

知道对应API后就可以进行对应的蓝牙开发,这里以获取蓝牙设备为例子

}

搜索设备的回调则需要通过注册广播的形式来获取

定义广播

之后就可以进行个人的一些操作

要实现蓝牙聊天则涉及到蓝牙之间的传输通信,前面也说到了,这里肯定就是用到BluetoothServerSocket以及BluetoothSocket。

蓝牙传输通信相当于服务器端与客户端之间的通信,只不过不同是这里每一个蓝牙设备本身自己 既充当服务器端也充当客户端 ,大致的关系就是

注意,这些连接都是阻塞式的,都要放在线程里去执行。

可以看到,当BluetoothServerSocket监听到有设备连接的时候,就会调用dataTransfer开启一个数据传输。

需要一个ConnectThread来发起

之后建立连接之后就会调用dataTransfer来进行数据传输,同样也需要一个线程来维护数据传输

蓝牙聊天则是基于上面三个线程来进行实现,同样,对于蓝牙文件间的传输也是同个道理,通过输入输出流来进行处理。

之后的操作就比较容易处理了

蓝牙聊天

Android 蓝牙开发基本流程

安卓开发 蓝牙 后台

Android 蓝牙编程的基本步骤:

1.获取蓝牙适配器BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();

判断蓝牙模块是否开启,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 的操作了。

Android 蓝牙开发(三)-蓝牙的详细介绍

前面的两篇文章,主要是在 Android 官网关于蓝牙介绍的基础上加上自己的理解完成的。

主要针对的是 Android 开发中的一些 API 的使用。

第一篇文章 Android 蓝牙开发(一) 主要是介绍了普通的蓝牙在 Android 开发中的运用。

第二篇文章 Android 蓝牙开发(二) 主要是介绍了低功耗蓝牙的开发。

这篇文章主要介绍的是蓝牙的历史和一些关于蓝牙的通用知识,还有广播包的知识。

要想彻底了解蓝牙开发,这些基础的知识也是需要的,就像网络协议一样,这些都是基础的内容。

我们的 API 的调用都是以这个为基础的,了解这些,开发过程中遇到问题,才可以知道什么怎么一回事。

下篇文章主要讲的就是实际开发中的一些坑。

蓝牙其实就是一种近距离无线通信技术。

从下到上分别为:控制器(Controller)-->主机(host)-->应用(Application)

详细介绍各个层的含义:

BLE 应用可以分为两大类:基于非连接的和基于连接的

意思就是外设和周边设备不发生连接,主要靠扫描到的广播来获取信息。

发送广播的一方叫做 broadcaster 监听广播的一方叫做 oberver 在 GAP 层有对应的角色定义。

网络拓扑图:

这种方式就是广播设备不断的向外发送广播(含有特定的信息),然后观察者接受到广播按照两者之间约定好的协议进行解析拿到有用的信息。

例如:iBeacon,通过这种设备我们可以实现室内定位。

其实这些设备的角色可以即使广播者又是观察者。

接收到广播后作出了处理,然后又发送广播。

这样就形成了双向的网络,类似于因特网,这就是蓝牙 Mesh 组网。

广播数据包格式:

每个广播数据包由 31 byte 组成。

分为有效数据和无效数据两部分。

例子:

这里是扫描的数据包(转换成了 16 进制,两个代表一个字节),第一个字节是 02 表示后面的两个字节是数据部分,然后第二个字节是 01 表示了数据的类型。

后面一个字节就是真正的数据了。

这个广播数据单元就分析完了。

下面就是另一个数据单元了。

依次类推,关于数据类型的解释,官网有。

这是数据类型对应的含义表。

网络拓扑图:

一个中心设备可连接多个外设,但是一个外设只能连接一个中心(外设连接成功后就会停止对外广播,别人就发现不了它了)。

其中一个中心设备的连接外设的数量也是有限的。

(随机推荐阅读本站500篇优秀文章点击前往:500篇优秀随机文章)
来源:本文由易搜IT博客原创撰写,欢迎分享本文,转载请保留出处和链接!