【问题标题】:transfer files from android to computer via usb programmatically以编程方式通过 USB 将文件从 android 传输到计算机
【发布时间】:2013-03-25 13:57:36
【问题描述】:

我正在寻找一种解决方案,它使用 Android API 通过 USB 电缆将文本文件从 Android 设备传输到计算机。我找到了USB host,但我无法使用它,因为计算机无法充当 Android 主机的设备。

您对我如何实现这一点有什么建议吗?

【问题讨论】:

  • 您想以编程方式执行此操作吗?还是您只需插入设备并拖放文件?
  • 我想以编程方式进行,正如我在“使用 Android API”的问题中提到的那样。
  • 我明白了,我不确定客户端机器上没有应用程序是否可以这样做,否则可能会带来很大的安全风险。
  • @323go 这也是一个选项,但是如果我在PC上实现一个应用程序,我不能使用adb,因为计算机没有安装Android SDK。除了adb还有其他选择吗?
  • @323go 那么如果我在 PC 上使用 Java 作为应用程序,我会将adb.exe 打包到 jar 中,并在第一次运行 jar 时将其解压缩以便能够使用它?

标签: android usb adb


【解决方案1】:

我已经解决了这个问题,使用adb status-window不断检查设备状态,当连接新设备时,使用adb pull命令将所需文件传输到计算机。

为了实现可移植的解决方案(即独立于 Android 平台运行),我只是将文件“adb.exe”和“AdbWinApi.dll”复制到我的应用程序中并从那里使用 adb。

【讨论】:

  • 复制adb.exeAdbWinApi.dll文件后我该怎么办?运行这个Runtime.getRuntime().exec("adb -s pull /sdcard/juned.jpg /root/juned/android_usb/"); 就可以了,还是我需要做其他事情?
【解决方案2】:

有类似的问题,安装在 PC 中的软件需要能够通过 USB 访问 android 手机内的文件。经过长时间的研究,这对我有用(不确定这是否是最好的解决方案,但它有效)。 Windows 具有 Windows Portable Device(WPD) API,可用于通过 USB 枚举设备的内容(以及在客户端和设备之间复制文件)。

java中的实现很少 http://code.google.com/p/jmtp/(效果很好,但不支持从设备到电脑的复制功能,尽管有一些支持可以使用源代码执行此操作) 另一个是 jusbpmp(可在 google 存储库中找到) (如果有人发现有据可查且维护良好的实现,请分享)

但是由于 jmtp 对我不起作用(复制函数源编译(对于 64 位操作系统)失败),所以从头开始编写 C# 程序将文件从设备复制到 PC。这是一个很好的教程 https://github.com/geersch/WPD/blob/master/src/part-3/README.md

【讨论】:

    【解决方案3】:

    您可以编写一个应用程序,该应用程序将使用 http 联系您的电脑并将 (POST) 数据发送到已知端点。

    请记住,该应用只能访问属于该应用的数据。您将无法从文件系统访问任意文件

    【讨论】:

    • 问题是我不能依赖无线网络连接。我唯一可以依靠的是 USB 数据线。
    • 这里一样...我需要通过 USB 连接到 Windows PC 上的数据库。
    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多