1

状況はこうです。私は vb.net で書かれたアプリケーションを持っています。それは2つの部分で構成されています。1 つは PC で、もう 1 つはハンドヘルド Windows Mobile 6 デバイスです。デスクトップ プログラムは、USB 経由で activesync を使用してハンドヘルド デバイスとの間で SQLServer コンパクト データベースを転送します。Android ハンドヘルド デバイスもこのアプリケーションでサポートすることを検討したいと考えています。これで、.net で SQLite を使用できることがわかりました。ADB を使用して、デバイスとの間でデータ (およびデータベース ファイル) をプッシュおよびプルできることはわかっています。

私が知る必要があるのは、手動で行うのではなく、API または SDK として VB.NET から直接 ADB にアクセスできるかということです。

もちろん、何かが欠けていて、他の方法でデータベースをデバイスにコピーしたり、デバイスからコピーしたりできない場合を除きますか?

期待して感謝

4

2 に答える 2

3

そのための直接の API はありません。ユーザーが手動で adb を使用するデスクトップ クライアント (この場合は Java Swing ベース) からコンテンツ (つまりデータベース) を同期する同様のシナリオがあり、これまでのところ正常に動作しています。

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 に答える