我正在用android phone.Through开发一个OBEX OPP客户端应用程序,这个客户端应用程序我将发送一个对象到非Android设备(它将充当OPP服务器).I已经使用API创建了RFCOMM套接字连接。
createRfcommSocketToServiceRecord(OPP_UUID);我使用了OBEX推送的UUID,即
私有静态最终UUID .fromString("00001105-0000-1000-8000-00805F9B34FB");= UUID OPP_UUID
我观察到,通过这个套接字连接是成功的,并且我得到了套接字的输入和输出流来发送和接收data.But。当我发送数据时,其他设备收到的数据格式不正确。我这样说的意思是,在接收器设备中,接收数据时会出现错误。BT Air sniffer指示retrieved_opcode数据中的不是present.OBEX响应码是错误请求。
有人能告诉我这里面哪里出了问题吗?或与未配对的设备进行OBEX OPP连接的步骤。
您宝贵的意见将帮助我克服这一点。
谢谢,Shekhar
发布于 2011-05-31 18:49:20
你应该能够配对设备,你也可以从设备的蓝牙设置中进行配对,但你不能连接它并像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)
https://stackoverflow.com/questions/6186191
复制相似问题