1

情况是这样的。我有一个用 vb.net 编写的应用程序。它由两个部分组成。一个在 PC 上,另一个在手持式 windows mobile 6 设备上。桌面程序通过 USB 使用 activesync 在手持设备之间传输 SQLServer 紧凑型数据库。潜在地,我们希望考虑让这个应用程序也支持安卓手持设备。现在我知道我可以将 SQLite 与 .net 一起使用。我知道我可以使用 ADB 将数据(以及数据库文件)推入和拉出设备。

我需要知道的是,我是否可以直接从 VB.NET 作为 API 或 SDK 访问 ADB,而不必手动进行。

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

期待中的感谢

4

2 回答 2

3

没有直接的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);
    }
}
于 2010-09-27T03:06:18.090 回答
0

我认为您的 VB.Net 应用程序将数据库移动到手机的更简单方法是将 sqlite 文件写入或复制到已安装的手机卷(例如手机的 sd 卡)上的(可配置)目录。

然后,Android 应用程序可以使用类似SQLiteDatabase.openDatabase路径的方法打开并使用传输的数据库。

于 2010-09-26T20:20:26.903 回答