【问题标题】:bluetooth file sending via BluetoothShare class is not working通过蓝牙共享类发送蓝牙文件不起作用
【发布时间】:2011-09-01 17:54:19
【问题描述】:

我正在开发一个应用程序,其中我有 文件 uri 以及我的 bt 设备地址。我需要将文件发送到定义的 bt 设备。但是,不应显示设备选择器屏幕。 应该直接启动设备发送

显然,intent:ACTION_SEND 不是一个选项,因为它会显示选择器对话框。该应用程序的主要意图是绕过选择器对话框,使用户能够将选定的文件直接发送到选定的设备。

所以,我正在尝试堆栈溢出中建议的以下解决方案:

/*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);*/

但不幸的是,它不起作用。在 getContentResolver().insert 之后,没有采取任何行动。不用说,我尝试了各种权限和其他东西,但没有效果。

所以,使用过此代码的人,请提供您的建议。任何满足要求的帮助将不胜感激。

【问题讨论】:

  • 这看起来像 Android 代码,所以我添加了 androidjava 标签。如果不正确,请修正。
  • 我也面临这个问题有什么解决办法吗?我也试过这段代码,它在 HTC AMAZE 上工作,但在三星平板电脑 P1000 上没有

标签: java android bluetooth


【解决方案1】:

它会产生任何异常吗?请分享您的 Logcat 输出。

顺便说一下,使用你在AndroidManifest.xml中有以下权限

<uses-permission android:name="android.permission.BLUETOOTH"/>

如果您要进行设备发现,请将其也添加到清单文件中

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>

【讨论】:

    【解决方案2】:

    我也发现了这个问题。我可以展示一些证据来解决这个问题。尝试此代码后,检查设备的出站传输队列(要打开它,手动将文件发送到设备并单击通知图标)。然后你可以看到设备已经尝试发送对象并且那些都失败了。单击一条失败消息,您会看到没有文件路径的弹出窗口。我认为问题在于,尽管我们在这里使用 URI 将文件路径设置为 contentValues,但在此过程中不会对其进行检查。我们必须为此做点什么。

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-14
      • 2011-02-23
      • 1970-01-01
      相关资源
      最近更新 更多