제목 그대로입니다. AVD에서는 DDMS에서 확인시 DB를 data/data/패키지명/databases (폴더가 없으면 생성합니다)
assets에 있는 DB를 복사하여 잘 사용을 하는데 USB디버깅 즉, 단말기에서는 폴더 생성조차 안되네요
뭔가 권한이있는건가요?? 참고로 SDCARD영역말고 내부 영역에 DB파일을 복사하여 사용하고 싶습니다.
제 스마트폰이 htc one m7을 사용하는데 이 스마트폰이 sdcard 슬롯 조차 없는 기종이라서요
무엇이 문제일까요??
혹시 폴더를 생성하는데 필요한 권한 같은게 있는 것인지;; AVD에서는 잘 도는데 단말기 연결해서 테스트해보면
DB를 사용을 못하네요.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
copyDB();
setContentView(R.layout.activity_main);
func_spinner();
init();
}
private void copyDB() {
// TODO Auto-generated method stub
String PACKAGE_DIR = "/data/data/app.smtit_yd/";
String DATABASE_NAME = "TimeTable.db";
File folder = new File(PACKAGE_DIR);
if (folder.exists()){
} else {
folder.mkdirs();
}
AssetManager A_man = getResources().getAssets();
File ofile = new File(PACKAGE_DIR + "databases/" + DATABASE_NAME);
ofile.delete();
InputStream in = null;
FileOutputStream out = null;
long filesize = 0;
try{
in = A_man.open(DATABASE_NAME,AssetManager.ACCESS_BUFFER);
filesize = in.available();
if(ofile.length() <=0){
byte[] tmpbyte = new byte[(int)filesize];
in.read(tmpbyte);
in.close();
ofile.createNewFile();
out = new FileOutputStream(ofile);
out.write(tmpbyte);
out.close();
}else{
System.out.println("DB있음!!!");
}
}catch(IOException e){
System.out.println("DB생성 오류 ["+e+"]");
}
}
구글링 해보니 애초에 AVD는 루팅이 되어있는 상태라서 접근이 가능하다는데
그렇다면 루팅되지 않은 폰들은 data를 아예 사용을 못하는건가요 방법이 없을까요?