2011-05-25 90 views
0

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

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

因此,使用此代码的人请提供您的建议。任何帮助满足要求将非常感激。

+0

这看起来像Android代码,所以我添加了[tag:android]和[tag:java]标签。如果这不正确,请修复它。 – 2011-07-09 02:48:20

+0

我也面临这个问题的任何解决方案?我也试过这个代码是在HTC AMAZE上工作,但不是在三星平板电脑P1000 – Naveed 2013-04-01 18:41:10

回答

0

它是否会产生异常?请分享您的Logcat输出。

顺便说一句,请使用您在AndroidManifest.xml

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

以下权限如果你正在做设备发现,太清单文件

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

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