Ситуация такова. У меня есть приложение, написанное на vb.net. он состоит или состоит из двух частей. Один на ПК, а другой на портативном устройстве Windows Mobile 6. Программа рабочего стола переносит компактную базу данных SQLServer на и с карманного устройства с помощью activesync через USB. Потенциально мы хотим изучить наличие карманных устройств Android, также поддерживаемых этим приложением. Теперь я знаю, что могу использовать SQLite с .net. Я знаю, что я могу использовать ADB для выталкивания данных и, следовательно, файлов базы данных, на устройство и обратно.
Что мне нужно знать, могу ли я получить доступ к ADB непосредственно из VB.NET как API или SDK, а не делать это вручную.
Если, конечно, я чего-то не хватает, и я могу копировать базы данных на другое устройство и с него каким-то другим способом?
спасибо в ожидании
Для этого нет прямого 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);
}
}
Я думаю, что для вашего приложения VB.Net для перемещения базы данных на телефон проще написать или скопировать sqlite файл в (настраиваемый) каталог на смонтированном телефоне (например, на SD-карте телефона).
Приложение Android может затем использовать такие методы, как SQLiteDatabase.openDatabase
с тем же путем открыть и работать с переданной базой данных.