我正在android中开发obex opp客户端应用程序
电话。通过客户端应用程序
我将向非android设备发送一个对象(它将充当
opp server),我已经使用api创建了rfcomm套接字连接
createrfcommsockettoservicecord(opp_uuid);我使用了
OBEX推动,即
私有静态最终uuid opp_uuid=uuid
.fromstring(“00001105-0000-1000-8000-00805F9B34FB”);
我注意到通过这个插座连接是成功的
我得到了要发送的套接字的输入和输出流
接收数据。但是当我发送数据时,数据接收到另一个
设备格式不正确。我的意思是
接收设备接收数据时出错。bt空气嗅探器
表示检索到的操作码数据中不存在。obex
响应代码是错误的请求。
有人能告诉我这里面有什么问题吗?或者做一个
OBEX OPP连接到未配对的设备。
你的宝贵意见将帮助我克服这一困难。
谢谢,
谢卡尔

最佳答案

您应该能够配对设备,也可以通过设备上的蓝牙设置进行配对,但您不能与设备连接并直接发送数据,如SPP通信。
obex是一种协议,有自己的头、包等。
android中没有一个api可以通过obex进行通信,您可以通过编程方式使用它。(您可以连接到设备,但只需读取/写入字节即可)。
您可以通过OBEX以以下几种方式将文件发送到配对设备:
使用action_send intent,将弹出一个菜单,其中包含可以处理要发送的文件类型的应用程序,用户需要从中选择Bluetooth,然后选择设备。

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)

08-05 21:13