问题描述
|
我正在用android开发OBEX OPP客户端应用程序
电话。通过客户端应用程序
我会将对象发送到非Android设备(用作
OPP服务器)。我已经使用API创建了RFCOMM套接字连接
createRfcommSocketToServiceRecord(OPP_UUID);我使用了UUID
OBEX推送即
私有静态最终UUID OPP_UUID = UUID
.fromString(\“ 00001105-0000-1000-8000-00805F9B34FB \”);
我观察到通过此套接字连接成功
然后我得到了套接字的输入和输出流来发送和
接收数据。但是当我发送数据时,数据接收到另一个
设备的格式不正确。我的意思是在
接收器设备收到错误数据。 BT空气嗅探器
指示不存在retriked_opcode中的数据。
响应代码是错误的请求。
谁能指导我这是什么问题?或制作一个
OBEX与未配对设备的OPP连接。
您的宝贵意见将帮助我克服这一问题。
谢谢,
舍哈尔
解决方法
您应该能够配对设备,也可以通过设备上的蓝牙设置进行配对,但是您无法与之连接并像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\"));
或者,如果您不希望在应用程序中出现任何对话框,则可以使用另一种方法,请检查以下问题,它具有使用有效解决方案的更新:
使用蓝牙OBEX对象推送配置文件(OPP)发送文件