Android上利用SDK的BluetoothAPI实现传送文件

  从Android 2.0版的SDK开始,公开了蓝牙相关的API接口,而之前的1.5~1.6未公开蓝牙API的系统,实际上也仅仅是未公开API而已,有可能是带有蓝牙服务的,通过一些Hack手段是能够获取到被隐藏的API的,这部分不在本文讨论范围之内。从SDK中公开的API来看,功能相当简单,并没有提供传输文件的直接支持,也就意味着要在Android上编码实现传送文件,还是要花一番功夫的。

  蓝牙传输文件是通过OBEX协议来实现的,具体可以参见蓝牙相关的协议说明。对于传送文件而言,我们只需要实现OBEX中OBJECT PUSH的那一部分即可,好在在Android Bluetooth API的基础上实现OBEX的协议中的PUSH部分完全是可行的,下面就来详细说明一下。首先,BluetoothSocket和普通的用于网络编程的Socket有些不同,我们要实现的是一个传送文件的客户端,可以通过BluetoothDevice.

createRfcommSocketToServiceRecord (UUID uuid) 这一接口来创建BluetoothSocket,注意该接口需要传入一个UUID的参数,这一UUID将标示服务类型,可以参见SDP(Service Discover Protocol),用于传输文件的服务的UUID是{00001105-0000-1000-8000-00805F9B34FB},这样如果接收方能够支持这一服务的话,我们就可以成功创建出一个用于传输的Socket。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值