我正在android中开发一个OBEX OPP客户端应用程序 phone.Through客户端应用程序 我会将一个对象发送到非Android设备(它将作为 OPP服务器)。我使用API
创建了RFCOMM套接字连接createRfcommSocketToServiceRecord(OPP_UUID);我使用的是UUID OBEX推,即
私有静态最终UUID OPP_UUID = UUID .fromString( “00001105-0000-1000-8000-00805F9B34FB”);
我观察到通过此连接成功 我得到了套接字的输入和输出流来发送和 收到数据。但是当我发送数据时,数据收到了另一个 设备格式不正确。我的意思是在这里 接收设备收到错误的数据。 BT Air嗅探器 表示在retrieve_opcode数据中不存在.OBEX 响应代码是错误请求。
任何人都可以指导我这有什么问题吗?或制作一个步骤 OBEX OPP与未配对的设备连接。
您的宝贵意见将帮助我克服这一点。
谢谢, 谢卡尔
答案 0 :(得分:3)
您应该能够配对设备,也可以通过设备上的蓝牙设置进行配对,但无法连接设备并直接发送数据,如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)