【问题标题】:Handle Android file reception on bluetooth在蓝牙上处理 Android 文件接收
【发布时间】:2023-04-10 20:51:09
【问题描述】:

我需要一种方法将两个文件从一部基于 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,

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

它又可以工作了,我收到了这两个文件,但问题是:

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

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

(如果您有更长的方式来管理整个蓝牙低级进程的解决方案,这是非常受欢迎的,但请我对 Android 非常陌生,所以请解释一下整个清单)

谢谢

【问题讨论】:

    标签: android file-io bluetooth


    【解决方案1】:

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

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

    【讨论】:

    • 一个非常简单的技巧是在下载完成后将文件从默认蓝牙文件夹移动到您想要的文件夹,但我确定你已经想到了这一点。将是一个完美的解决方案,即使没有很好的性能。但是如何确定所有两个文件都已传输?
    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多