我正在开发一个应用程序,其中文件uri以及bt设备地址与我。我需要将文件发送到定义的bt设备。但是,不应显示设备选择器屏幕。 应直接启动设备发送。
显然,意图: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之后,没有采取任何行动。毋庸置疑,我已尝试过各种权限和其他内容,但没有效果。
因此,使用此代码的人请提供您的建议。任何帮助满足要求将非常感激。
答案 0 :(得分:0)
是否会产生任何异常?请分享您的Logcat输出。
顺便说一下,使用你在AndroidManifest.xml中拥有以下权限
<uses-permission android:name="android.permission.BLUETOOTH"/>
如果您正在进行设备发现,请在清单文件中添加它
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
答案 1 :(得分:0)
我也发现了这个问题。我可以展示一些证据来解决这个问题。尝试此代码后,请检查设备的出站传输队列(打开它,手动将文件发送到设备并单击通知图标)。然后你可以看到设备已经尝试发送对象而那些都失败了。单击一条失败消息,您可以看到没有文件路径的弹出窗口。我认为问题是在这里我们使用URI将文件路径设置为contentValues,在此过程中不会检查它。我们必须为此做点什么。