处理蓝牙上的Android文件接收

时间:2014-07-05 20:15:43

标签: android file-io bluetooth

我需要一种方法将两个文件从基于Android的电话发送到另一个,并且在收到这些文件后执行某些操作。 在第一部手机,服务器中,我简单地使用了ACTION_SEND Intent,因此我无需管理蓝牙连接,发现新设备和管理配对设备。有用! (这是代码)

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, files);
intent.setPackage("com.android.bluetooth"); 
intent.setType("image/jpeg");
startActivity(Intent.createChooser(intent, "Send Files"));

在客户端手机中我出于同样的原因使用ACTON_DISCOVERABLE意图,

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 120);
startActivity(discoverableIntent);

它再次起作用,我收到了两个文件,但问题出在这里:

它们存储在默认的蓝牙文件夹中,而我需要它们位于我的应用程序特定文件夹中,该文件夹位于SD卡中。

我必须更改其位置并重命名。我该怎么做,或者更好,我知道该怎么做但是,我怎么知道转移何时完成?< / strong>有没有办法捕获下载完成的事件?

(如果您有更长的解决方案来管理整个蓝牙低级别流程,这是非常接受的,但请我非常喜欢Android,所以请在整个列表中解释清楚)

由于

1 个答案:

答案 0 :(得分:0)

一个非常简单的技巧是在下载完成后将文件从默认蓝牙文件夹移动到您想要的文件,但我确定您已经想到了这一点。

现在,通过蓝牙发送文件应用与发送一些字节相同的逻辑。这里有一个简单的库bluetooth_library以及如何在example使用蓝牙发送/接收文件的示例。它以字节流的形式提供数据,因此您可以将它们保存在任何您想要的位置。我希望它有所帮助