深入理解android网络-bluetooth-Note

// Android Bluetooth
android.blutooth包下


1、BlutoothAdapter类
代表了一个本地的蓝牙适配器,它是所有蓝牙交互的入口点
利用它可以发现其它蓝牙设备,查询绑定了的设备,使用已知的MAC地址实例化一个蓝牙设备
和建立一个BluetoothServerSocket作为服务器端来监听来自其它设备的连接


2、BluetoothDevice类
代表了一个远端的蓝牙设备,使用它请求远端蓝牙设备连接或者获取远端蓝牙设备的名称/地址/种类/绑定状态
其信息封装在BluetoothSocket中


3、BlutoothServerSocket类
代表打开服务连接来监听可能到来的连接请求,为了连接两个蓝牙设备必须有一个设备作为服务器打开一个服务套接字
当远端设备发起连接请求的时候,并且已经连接到了的时候,BluetoothServerSocket类会返回一个BluetoothSocket


accept()  返回一个BluetoothSocket,服务器端与客户端的连接最后是两个BluetoothSocket间的连接


4、BluetoothSocket类
该类代表客户端,跟BluetoothSocket相对,代表一个蓝牙套接字的接口,它是应用程序通过输入、输出流与其它蓝牙设备通信的连接点
蓝牙支持point-to-point 和 multipoint 两种连接,利用Android Bluetooth API可以做到:
设置本地和搜素其它蓝牙设备
寻找网内匹配的蓝牙设备
建立RFCOMM通道
通过服务发现建立与其它蓝牙设备的连接
设备之间的数据传输
管理多个连接

5、蓝牙基本操作
声明权限:
<uses-permission android:name = "android.permission.BLUETOOTH">   BLUETOOTH_ADMIN


获取BluetoothAdapter对象


打开蓝牙
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

发现设备
使用BluetoothAdapter,可以通过设备搜索device discovery 或查询匹配设备 Querying paired devices 找到远端蓝牙设备
设备搜索:打开被搜索功能,才会响应一个discovery请求,响应的信息包括:设备名,类,唯一的MAC地址;
发起搜素的设备可以使用这些信息来初始化与被发现的设备的连接
一旦与远程设备的第一次连接被建立,一个配对请求就会自动提交给用户,如果设备已配对,配对设备的基本信息
(设备名称,类,MAC地址)可以在任何时候发起连接而不必再做设备搜索.

在同一个RFCOMM信道上都有一个BluetoothSocket时,则两端就建立了连接,此刻每个舍必都能获得一个输入输出流,进行数据传输
服务器端和客户端获得BluetoothSocket方法不同:
服务器端是在客户端的连接被接受时才产生一个BluetoothSocket
客户端是在打开一个到服务器端的RFCOMM信道时获得BlutoothSocket;获取一个代表远程设备的BluetoothDevice对象,
然后使用BluetoothDevice对象来获取一个BluetoothSocket以实现连接

作为服务器端连接:
作为客户端连接:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值