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 服务器,如何更改文件的存储位置?

订阅 ERC20 转账活动

通过 OBEX Object PushProfile 通过蓝牙接收文件

Stripe API:您如何找到跨境转账到 Connect 账户的汇率和外币金额?

是否可以通过 OBEX 在未配对的设备之间传输文件?