안드로이드 개발 질문/답변
(글 수 45,052)
SQLite에서 DB 생성할때..
String DB_Name = "mydb.db"
dbHelper = new ImageDBOpenHelper(context, DB_Name, null,
DATABASE_VERSION);
기본으로 /data/data/[PKG Name]/databases 아래에 생깁니다.
이렇게 생기는 부분을 User Data 영역에 만들어 줄수 있는 방법없는지요?
예를 들어 /sdcard/mydb.db를 만들수는 없는지요?
String DB_Name = "/sdcard/mydb.db"
dbHelper = new ImageDBOpenHelper(context, DB_Name, null,
DATABASE_VERSION);
==> 이렇게 하면.. 아래와 같은 error가 납니다.
11-16 10:31:34.958: ERROR/AndroidRuntime(1367): Caused by: java.lang.IllegalArgumentException: File /sdcard/mydb.db contains a path separator
컨텐츠가 있는 Folder에 DB를 저장 하고 싶은 겁니다. ㅠㅠ;;
String DB_Name = "mydb.db"
dbHelper = new ImageDBOpenHelper(context, DB_Name, null,
DATABASE_VERSION);
기본으로 /data/data/[PKG Name]/databases 아래에 생깁니다.
이렇게 생기는 부분을 User Data 영역에 만들어 줄수 있는 방법없는지요?
예를 들어 /sdcard/mydb.db를 만들수는 없는지요?
String DB_Name = "/sdcard/mydb.db"
dbHelper = new ImageDBOpenHelper(context, DB_Name, null,
DATABASE_VERSION);
==> 이렇게 하면.. 아래와 같은 error가 납니다.
11-16 10:31:34.958: ERROR/AndroidRuntime(1367): Caused by: java.lang.IllegalArgumentException: File /sdcard/mydb.db contains a path separator
컨텐츠가 있는 Folder에 DB를 저장 하고 싶은 겁니다. ㅠㅠ;;
우선 /sdcard의 권한을 확인해 보세요. 아무나 쓸 수 있는 퍼미션 인지요.
그리고, ImageDBOpenHelper 라는 함수 이름에서 풍기는 뉘앙스가
이미지와 관련된 DB를 Open하는거 같은데요.
DB가 이미지와 관련되어 있다는 것은 안드로이드가 정한 위치에 생긴다는 것이 아닐까 합니다.
이 API 말고 DB 관련해서 직접 호출할 수 있는 API를 찾아 보시는 것이 어떨까 합니다.