Android: передача базы данных sqlite с ПК на устройство через USB программно - PullRequest
1 голос
/ 26 сентября 2010

Ситуация такая. У меня есть заявление, написанное на vb.net. состоит из двух частей. Один на ПК, а другой на портативном устройстве Windows Mobile 6. Настольная программа передает компактную базу данных SQLServer на портативное устройство и с него, используя ActiveSync через USB. Потенциально, мы хотим рассмотреть возможность поддержки мобильных устройств на базе Android. Теперь я знаю, что могу использовать SQLite с .net. Я знаю, что могу использовать ADB для передачи и извлечения данных (и, следовательно, файлов базы данных) на устройство и с него.

Мне нужно знать, могу ли я обращаться к ADB напрямую из VB.NET в виде API или SDK, а не делать это вручную.

Если, конечно, я что-то упустил, и я могу копировать базы данных на устройство и с устройства каким-либо другим способом?

спасибо в ожидании

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

Для этого нет прямого 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);
    }
}
0 голосов
/ 27 сентября 2010

Я думаю, что для вашего приложения VB.Net проще перенести базу данных на телефон - это написать или скопировать файл sqlite в (настраиваемый) каталог на смонтированном томе телефона sd-карта телефона).

Приложение Android может затем использовать методы, такие как SQLiteDatabase.openDatabase с тем же путем, чтобы открывать и работать с переданной базой данных.

...