BFi*_*Fil 23 android bluetooth file send obex
有没有办法使用OBEX使用android bluetooth API发送文件?
我需要将文件发送到仅支持OBEX OPP的打印机.
我可以使用android意图ACTION_SEND将文件发送到打印机没有问题,但我需要以编程方式发送它..
我可以使用方法createRfcommSocketToServiceRecord()使用OBEX OPP UUID(1105)连接到蓝牙打印机,但是我应该遵循obex规范使用OBEX发送文件..它不像将字节写入输出套接字那么简单. .
但是如果意图ACTION_SEND可以处理这个问题,为什么开发人员没有任何API发送文件?
我还检查了一些像BlueCove这样的第三方库,但我仍然没有让它工作..(Nexus One和Galaxy Tab抛出异常,说本机库bluecove_armv71不可用..而且LG Optimus One说bluecove_armv61不是不可用..)
我被卡住了,有什么想法吗?
工作解决方案
对于任何试图将文件发送到蓝牙设备而没有运气的人,我使用内容提供商提供了一个有效的解决方案(感谢KPBird):
从这里抓取java类BluetoothShare
以下代码将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);
Run Code Online (Sandbox Code Playgroud)
UPDATE
有些人遇到上述解决方案的问题,已经在以下设备上进行了测试:
适用于:
有问题:
如果您能够在上面未列出的设备上测试此代码段,请在下面的评论中提供您测试它的设备(品牌,名称,Android版本等)的详细信息以及测试结果. ,我会更新包括您的数据在内的问题.