在Android和Node.js之间传输大文件

前端之家收集整理的这篇文章主要介绍了在Android和Node.js之间传输大文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个拍照的 Android应用程序(用React Native编写,但我可以添加本机模块,如果需要的话),它与用户计算机上的一个gallery-type应用程序配对(用Electron with React编写).照片的数量可能很大(我们一次有超过一千张照片),他们需要转移,未压缩和未剪切,到计算机应用程序.我需要一种可靠的方法来实现这一点,而无需首先通过Internet路由数据.

我尝试过的事情

Node USB:看起来像一个好的库,但无法在用户的计算机上安装驱动程序.然后,驱动程序似乎替换了默认的Windows USB驱动程序,并且通过正常方式(在Windows中打开文件浏览器)无法访问手机.也许有一些方法可以“动态”切换驱动程序,仅在传输照片时使用驱动程序,然后在完成后将其切换回系统驱动程序?

ADB:这是我尝试的原始解决方案,它完全符合我的需要,有两个突破性问题:一,手机需要启用开发模式,而两个,ADB似乎无法识别所有设备(例如,我们在使用LG V20时遇到了很多麻烦).这个问题的理想答案就像亚行没有这两个问题.

WiFi路由:我们将手机连接到与主机相同的WiFi网络,使用WebSockets通过互联网握手IP,然后通过WiFi网络启动直接连接.如果我找不到任何其他解决方案,这可能是我要去的那个.此选项的最大问题是需要相对大量的手动设置.我们的用户往往不是非常精通技术,我不知道假设他们家里有WiFi,这是多么合理.无论如何,这不是转移的唯一选择.此外,通过无线网络传输千兆字节的照片将导致同一网络上的每个人的速度减慢.

系绳路由:我们将电话连接到计算机,并以与上述步骤相同的方式启动直接连接.这种方法的缺点是只有带有SIM卡的手机才能激活网络共享(并非所有手机都有SIM卡,因为连接不是我们需要的主要目的),而且计算机上的所有其他流量现在都是通过电话路由,这对于拥有SIM卡的客户数据上限是不利的.此外,没有办法以编程方式转动网络共享,只有能够启动网络共享菜单;这不是一个太大的交易破坏者,但其他两个非常重要.

蓝牙:通常符合我的要求,但数据传输速率太低,比WiFi低一个数量级.

WiFi Direct:我实际上并没有尝试这个,因为我找不到让PC接受WiFi Direct连接的工作方式.它承诺超高速度,但我发现没有可以帮助我启用它的模块或库.

SD卡:低技术方法中最低的一种,只需将所有内容保存到SD卡中,让客户端取出卡并将其插入计算机.除了需要SD卡端口(保证客户端的电脑或手机都没有保证)之外,还可以随意使用.

显而易见:手动将所需文件从手机拖放到PC.这就是我们现在做的事情,它充满了问题.在传输过程中,由于某种原因,文本文件中最后15-20个字符被切断;由于MTP没有强制在手机上进行媒体重新扫描的已知问题,设备上的许多照片最初都没有显示出来;用户有时会将文件放在错误的位置,从而导致不必要的支持呼叫.这种方法肯定需要更换.

我已经在两个月内一直在寻找这个问题的解决方案了,而且很难相信没有像这样的Android用例.已经明确表示Android和PC之间的USB通信并非易事,我确信有些程序可以做到这一点,Windows也是如此.然而,尽我所能,没有解决方案可以开箱即用.以前有人处理过这样的问题吗?你的解决方案是什么?你会怎么解决这个问题?

解决方法

在Android上下载大文件时,建议使用下载管理器,它支持很多本机功能,如进度条和通知,下载任务也将由操作系统处理,效率更高.

React Native Fetch Blob库支持功能

猜你在找的Android相关文章