전화 앱 저장 위치에 sqlite 데이터베이스 파일을 푸시해야합니다. 내 앱 패키지 데이터베이스에 대해 this을 사용해 보았습니다.하지만 작동하지 않습니다.전화로 sqlite 데이터베이스 파일을 밀어
장치 셸에서 아래 명령을 사용했지만 장치를 찾을 수 없습니다라는 메시지가 표시되었습니다.
[email protected]: adb push MY_DB_FILE /data/data/MY_PACKAGE_NAME/databases/
전화 앱 저장 위치에 sqlite 데이터베이스 파일을 푸시해야합니다. 내 앱 패키지 데이터베이스에 대해 this을 사용해 보았습니다.하지만 작동하지 않습니다.전화로 sqlite 데이터베이스 파일을 밀어
장치 셸에서 아래 명령을 사용했지만 장치를 찾을 수 없습니다라는 메시지가 표시되었습니다.
[email protected]: adb push MY_DB_FILE /data/data/MY_PACKAGE_NAME/databases/
데이터베이스 파일이 필요할 때마다 아래 표시된 write() 메소드를 호출하십시오. 그것은 당신의 장치의 루트 폴더에 backupname.db 파일을 만듭니다. 유 Assest에서 데이터베이스를 복사 할
private void write() throws IOException {
File sd = Environment.getExternalStorageDirectory();
if (sd.canWrite()) {
String currentDBPath = DatabaseHelper.DATABASE_NAME;
String backupDBPath = "backupname.db";
File currentDB = new File(getDBPath(), currentDBPath);
File backupDB = new File(sd, backupDBPath);
if (currentDB.exists()) {
FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
}
}
}
private String getDBPath() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
return getFilesDir().getAbsolutePath().replace("files", "databases") + File.separator;
} else {
return getFilesDir().getPath() + getPackageName() + "/databases/";
}
}
누구든지 downvoted있다, 당신은 내 프로젝트에서 모든 작업 괜찮아,이게 뭐가 잘못 됐는지 말해 줄 수있어. –
는 –
를 sdcard에 위해 (당신이 backupDBPath 문자열의 .DB 파일의 이름을 변경할 수 있습니다) @ NaveenTamrakar이 나에게 묻고 있거나 나에게 말하고있다. 제발 더 자세히 설명해라. –
휴대 전화가 루팅되어 있고'su'가 없거나 앱이 데이터베이스 파일 자체를 쓰지 않는 한'/ data/data /'에 쓸 수 없습니다. – 323go