OBEX OPP 特定转账
Posted
技术标签:
【中文标题】OBEX OPP 特定转账【英文标题】:OBEX OPP Specific transfer 【发布时间】:2011-09-05 09:13:02 【问题描述】:我正在android中开发一个OBEX OPP客户端应用程序 电话。通过客户端应用程序 我将向非 Android 设备发送一个对象(它将充当 OPP 服务器)。我已经使用 API 创建了 RFCOMM 套接字连接
createRfcommSocketToServiceRecord(OPP_UUID);我已经使用了 UUID OBEX Push 即
私有静态最终 UUID OPP_UUID = UUID .fromString("00001105-0000-1000-8000-00805F9B34FB");
我观察到通过这个socket连接是成功的 我得到了要发送的套接字的输入和输出流 接收数据。但是当我发送数据时,数据收到了另一个 设备格式不正确。我的意思是在 接收器设备接收到的数据有错误。 BT 空气嗅探器 表示retrieved_opcode中的数据不存在。OBEX 响应代码是错误请求。
谁能指导我这有什么问题?或制作步骤 OBEX OPP 与未配对设备的连接。
您的宝贵意见将帮助我克服这个问题。
谢谢, 谢卡尔
【问题讨论】:
【参考方案1】:您应该可以配对设备,您也可以通过设备上的蓝牙设置进行配对,但您无法与它连接并像SPP通信那样直接发送数据。
OBEX是一个协议,有自己的头、包等。
Android 中没有可以通过编程方式使用的通过 OBEX 进行通信的 API。 (你可以连接到设备,但你只能读/写字节)。
您可以通过以下几种方式通过 obex 将文件发送到配对设备:
使用 ACTION_SEND 意图,将弹出一个菜单,其中包含可以处理您要发送的文件类型的应用程序,用户需要从中选择蓝牙,然后选择设备。
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("image/jpeg");
share.putExtra(Intent.EXTRA_STREAM, Uri.parse(SDCardPath + "file.jpg"));
startActivity(Intent.createChooser(share, "Share Image"));
或者,如果您不希望应用程序中出现任何对话框,您也可以使用其他方法,检查以下问题,它有一个有效解决方案的更新:
Sending a File using Bluetooth OBEX Object Push Profile (OPP)
【讨论】:
以上是关于OBEX OPP 特定转账的主要内容,如果未能解决你的问题,请参考以下文章
使用 Bluez-obex 和 pydbus 的 Python opp obex 服务器?
Bluez-obex 和 python opp 服务器,如何更改文件的存储位置?
通过 OBEX Object PushProfile 通过蓝牙接收文件