gpt4 book ai didi

android - 使用蓝牙 OBEX 对象推送配置文件 (OPP) 发送文件

转载 作者:IT老高 更新时间:2023-10-28 22:22:53 26 4
gpt4 key购买 nike

有没有办法通过 OBEX 使用 android 蓝牙 API 发送文件?

我需要将文件发送到仅支持 OBEX OPP 的打印机。

我可以使用 android intent ACTION_SEND 将文件毫无问题地发送到打印机,但我需要以编程方式发送它..

我可以使用 OBEX OPP UUID (1105) 和方法 createRfcommSocketToServiceRecord() 连接到蓝牙打印机,但是我应该遵循 obex 规范使用 OBEX 发送文件.. 它不像写入字节那么简单输出 socket ..

但是如果intent ACTION_SEND 可以处理这个问题,为什么没有任何api 供开发人员发送文件?

我还检查了一些第三方库,例如 BlueCove,但我仍然没有让它工作..(Nexus One 和 Galaxy Tab 抛出异常,说 native 库 bluecove_armv71 不可用.. LG Optimus One 说 bluecove_armv61 不可用..)

我卡住了,有什么想法吗?

工作解决方案

对于任何尝试将文件发送到蓝牙设备但运气不佳的人,我提供了一个使用内容提供程序的可行解决方案(感谢 KPBird):

here 获取 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);

更新

有些人在使用上述解决方案时遇到问题,已在以下设备上进行了测试:

适用于:

  • LG 擎天柱一号(Android 2.1)
  • HTC Desire (Android 2.2)
  • Google Nexus One(Android 2.2 和 2.3)
  • 三星 Galaxy S2(Android 4.0.3)
  • HTC Amaze(Android 2.3.4)

有问题:

  • LG P500(Android 2.3.3)
  • Galaxy TAB P500(Android 2.2)
  • Google Nexus S (Android 4.1.2)

如果您能够在上面未列出的设备上测试此代码段,请提供您测试它的设备的详细信息(品牌、名称、Android 版本等) ,以及测试结果,在下面的评论中,我将更新问题,包括您的数据。

最佳答案

我写了一个 sample application测试提供的答案。不幸的是它对我不起作用,所以我认为这个问题没有完全回答。

关于android - 使用蓝牙 OBEX 对象推送配置文件 (OPP) 发送文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com