是否有任何方式使用OBEX发送使用android bluetooth API的文件?使用蓝牙OBEX对象推送配置文件(OPP)发送文件
我需要将文件发送到仅支持OBEX OPP的打印机。
我可以使用Android的意图ACTION_SEND到没有问题的打印机发送的文件,但我需要以编程方式发送..
我可以连接到使用OBEX OPP UUID蓝牙打印机(1105)该方法createRfcommSocketToServiceRecord(),但后来我应该遵循OBEX规范发送使用OBEX文件..它是不是字节写入到输出插座一样简单..
但是,如果意向ACTION_SEND可以解决这个问题,为什么开发人员无法发送这些文件?
我也查了一些第三方库像BlueCove,但我还是没有 得到它的工作。(歌Nexus One &的Galaxy Tab抛出一个异常,说本机库bluecove_armv71不可用..和LG擎天柱一说bluecove_armv61不可用..)
我卡住了,有什么想法吗?
工作液
对于任何人试图将文件发送到蓝牙设备没有运气,我提供使用内容提供商(感谢KPBird)工作方案:
抓住java类BluetoothShare从here
比,下面的代码发送文件的SD卡上的蓝牙设备:
BluetoothDevice device;
String filePath = Environment.getExternalStorageDirectory().toString() + "/file.jpg";
ContentValues values = new ContentValues();
values.put(BluetoothShare.URI, Uri.fromFile(new File(filePath)).toString());
values.put(BluetoothShare.DESTINATION, device.getAddress());
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);
Uri contentUri = getContentResolver().insert(BluetoothShare.CONTENT_URI, values);
UPDATE
有些人遇到上述解决方案的问题,已经对下列设备进行测试:
文选:
- LG的Optimus One(Android 2.1版)
- HTC Desire(Android 2.2)
- 谷歌Nexus One(Android 2.2和2.3)
- 三星Galaxy S2(安卓4.0.3)
- HTC惊奇(安卓2.3.4)
有问题的:
- LG P500(安卓2.3.3)
- Galaxy TAB P500(Android 2.2)
- 谷歌Nexus S(Android 4.1。2)
如果你能来测试上面没有列出的设备这个片段中,请提供你测试了它的设备(品牌名称,Android版本,等等)的细节,以及测试结果,在下面的评论中,我会更新包括您的数据在内的问题。
您好ShadowCloud,在上面的代码中,一旦contentUri填充,哪里蓝牙设备发生推??我没有看到任何代码... – 2011-06-01 06:28:28
此代码不适用于从4.1开始的操作系统 – Harish 2013-06-25 20:12:57