android:以编程方式通过USB将sqlite数据库从PC传输到设备

标签 android vb.net usb adb

情况是这样的。我有一个用 vb.net 编写的应用程序。它由两部分组成。一个在 PC 上,另一个在手持式 Windows Mobile 6 设备上。桌面程序使用 activesync 通过 USB 将 SQLServer compact 数据库传输到手持设备或从手持设备传输。我们可能希望研究让此应用程序也支持 android 手持设备。现在我知道我可以将 SQLite 与 .net 一起使用。我知道我可以使用 ADB 向设备推送和拉取数据(以及数据库文件)。

我需要知道的是,我能否以 API 或 SDK 的形式直接从 VB.NET 访问 ADB 而不必手动访问。

当然,除非我遗漏了一些东西并且我可以通过其他方式将数据库复制到设备或从设备复制数据库?

感谢期待

最佳答案

没有直接的 API。我们有一个类似的场景,用户从桌面客户端(在我们的例子中是基于 Java Swing 的)同步内容(即数据库),该客户端手动使用 adb,目前运行良好。

在我们的 java 客户端中,我们会调用:

private static final String ADB_PUSH = "\"" + Utility.getWorkDir() + File.separator + "adb\" -s %s push \"%s\" %s";


/**
 * Pushes a file to a connected device via ADB
 * @param deviceId Device serial number
 * @param from Path of source file (on PC)
 * @param to Path of file destination (on device)
 */
public static void push(String deviceId, String from, String to) {
    try {
        String cmd = String.format(ADB_PUSH, deviceId, from, to);
        System.out.println("adb push: " + cmd);
        Process p = Runtime.getRuntime().exec(cmd);
        InputStream is = p.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

        String line;
        while ((line = br.readLine()) != null) {
            System.out.println("adb: " + line);
        }
    } catch (IOException e) {
        System.out.println(e);
    }
}

关于android:以编程方式通过USB将sqlite数据库从PC传输到设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3799536/

相关文章:

objective-c - 获取 USB 硬盘的序列号 (Mac OS)

android - 使 Recycler View 从底部显示行

java - 在 OnCreateView 调用之外动态添加 View 到 fragment

android - 使用计算机名称而不是 IP 在 Mac 上查看本地 Web 服务器

java - BottomNavigationView - 如何避免重新创建 fragment 并重用它们

c# - 如何遍历对象的成员变量?

linux - USB 键盘和 setxkbmap

vb.net - 从 url 保存图像

vb.net - 字符串 3 位小数

python - 使用 python 在 Windows 10 上检测 USB 设备插入