【问题标题】:Sending large files with Android Beam (or S-Beam)使用 Android Beam(或 S-Beam)发送大文件
【发布时间】:2012-11-08 13:18:49
【问题描述】:

我的任务是为应用程序添加支持,以便通过 Android 上的“NFC”将大型数据文件(数十兆字节)从设备传输到设备。

我知道 Android 上的真正 NFC 速度非常慢,但我知道 ICS 支持将批量数据传输到蓝牙;三星拥有通过 Wifi Direct (S-Beam) 执行相同操作的专有机制。这就是我想要采取的方法。

很遗憾,我找不到任何有关如何实际执行此操作的信息。

我查看了 Android Beam 文档,没有提到支持大批量数据的特殊机制;所以我采用了标准的 AndroidBeamDemo 应用程序,并简单地在数据包大小中添加了一个大字节数组,希望它都能正常工作。似乎没有 --- 发送一条 10kB 的消息大约需要 5 秒钟,而尝试发送一条 1MB 的消息根本没有任何作用(尽管它告诉我消息已成功发送)。

对于三星的 S-Beam,我根本找不到任何文档。

有人做过这项工作吗?如果有,他们可以举个例子吗?

【问题讨论】:

  • 您在寻找错误的东西。查找“如何通过代码启动蓝牙连接”,并在您的应用中使用它,通过光束发送连接信息
  • 不,这不是我们想要的。 (我们已经支持通过蓝牙进行显式传输。)我们明确希望通过 NFC 传输(切换到蓝牙)。用户体验完全不同。
  • 恐怕我们不了解对方。用户体验应该是一样的。用户轻敲手机,发送 BT 连接数据。您的应用程序拦截此 NFC 事件,并使用接收到的数据创建 BT 连接并通过它推送大文件,而无需用户干预。从用户的角度来看,他只是发送了他的数据。有什么不同?这正是将填充传输交给您一直要求的蓝牙。您是否正在寻找开箱即用的机制,可以做到这一点?它很简单,可以实现恕我直言

标签: android nfc android-beam


【解决方案1】:

对于 Android Beam,您需要使用 setBeamPushUris()(或 setBeamPushUrisCallback(),如果数据不固定)提供包含数据的文件的 URI。

对于 S-Beam,我不知道有什么 API 可以使用。 AFAICT,S-Beam 仅适用于图片、视频和音乐的内置应用程序。

【讨论】:

  • 同意。这是一个通过setBeamPushUris() 发送文件的示例应用程序:github.com/commonsguy/cw-omnibus/tree/master/NFC/FileBeam
  • 谢谢 --- 这正是我想要的。当然,它不工作(总是产生'Beam没有完成'),但作为我必须测试的唯一设备是三星Galaxy 3s,我怀疑这是三星的错。干杯。
猜你喜欢
  • 2013-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 2012-01-28
相关资源
最近更新 更多