Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过BluetoothShare类发送蓝牙文件不起作用_Java_Android_Bluetooth - Fatal编程技术网

Java 通过BluetoothShare类发送蓝牙文件不起作用

Java 通过BluetoothShare类发送蓝牙文件不起作用,java,android,bluetooth,Java,Android,Bluetooth,我正在开发一个应用程序,其中我有文件uri和bt设备地址。我需要将文件发送到已定义的bt设备。但是,不应显示设备选择器屏幕。它应该直接启动设备发送 显然,intent:ACTION\u SEND在这里不是一个选项,因为它将显示选择器对话框。该应用程序的主要目的是绕过选择器对话框,使用户能够直接将所选文件发送到所选设备 因此,我尝试了堆栈溢出中建议的以下解决方案: /*BluetoothDevice device; String filePath = Environment.getExternal

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

显然,intent:ACTION\u 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之后,没有执行任何操作。不用说,我尝试过各种权限和其他东西,但没有效果


所以,使用过此代码的人,请提供您的建议。我们将非常感谢您为满足要求提供的任何帮助。

是否会产生任何例外情况?请分享您的Logcat输出

顺便说一下,请使用您在AndroidManifest.xml中拥有的以下权限

<uses-permission android:name="android.permission.BLUETOOTH"/>
如果您正在执行设备发现,请将其也添加到清单文件中

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

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

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