import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;



public class MySQLiteOpenHelper {

    String savePath = "/mnt/sdcard/firstaid.db";    // 에뮬, 폰 가능하나 추가된 db 검색이 안됨
    //String savePath = "/data/data/com.same/databases/firstaid.db";    // 에뮬가능, 폰에서는 강제종료
    
    Context ctx;
    
    public SQLiteDatabase createDatabase(){
        
        SQLiteDatabase db;
                
        db = SQLiteDatabase.openDatabase(savePath, null, 0 );
        
        if( db == null ){
            
            try{
                InputStream myInput = ctx.getAssets().open("firstaid.db");
                String outFileName = "first.sqlite";
                OutputStream myOutput  = new FileOutputStream(savePath);
                byte[] buffer = new byte[1024];
                int length;
                while((length = myInput.read(buffer)) >0){
                    myOutput.write(buffer,0,length);
                    
                }
                myOutput.flush();
                myOutput.close();
                myInput.close();
                
                
            }catch(IOException e){
                //throw new Error("Error copying database");
                e.printStackTrace();                    
            }
            
            db = SQLiteDatabase.openDatabase(savePath, null, 0 );
        }//end if
         
        return db;
    }//end createDatabase
}//end class



 import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class MySQLiteHandler {

    private static String TABLE_NAME = "first_aid";
    Context ctx;
    
    MySQLiteOpenHelper helper;
    SQLiteDatabase db;
    
    public MySQLiteHandler(Context ctx) {
        //helper = new MySQLiteOpenHelper(ctx);
        //db = helper.createDataBase();
        db = new MySQLiteOpenHelper().createDatabase();
    }
    
    //open
    public static MySQLiteHandler open(Context ctx) {
        return new MySQLiteHandler(ctx);
    }
    
    public static void close() {
    }
    
    public long insert(String name, String address, String tel) {
        return 0;
    }
    
    public void delete() {
    }
    
    public int update(String _id, String name, String address, String tel) {
        return 0;
    }
    
    //selcet all
    public Cursor select() {
        Cursor c = db.query(TABLE_NAME, null, null, null, null, null, null);
        return c;
    }
    
    //_id 일치 데이터 얻기
    public Cursor select(String _child) {
        Cursor c = db.query(TABLE_NAME, null, "type = ?", new String[]{ _child }, null, null, null);
        return c;
    }
    public Cursor select2(String str) {
        Cursor c = db.query(TABLE_NAME, new String[]{ "distinct"+ " " + str }, null, null, null, null, null);
        return c;
    }
    public Cursor select_type(String num) {
        Cursor c = db.query(TABLE_NAME, new String[]{ "type" }, "title_num=?", new String[]{ num }, null, null, null);
        return c;
    }
    
    public Cursor selcet_double(String str1, String str2) {
        //Cursor c = db.query("first_aid", null, "title_num=?, type_num=?", new String[]{ str1, str2 }, null, null, null);
        Cursor c = db.query(TABLE_NAME, null, "title_num=" + "'" + str1 + "'" + "and" + " " + "type_num=" + "'" + str2 + "'", null, null, null, null);
        return c;
    }
    
    public Cursor select_test(String _id) {
        Cursor c = db.query(TABLE_NAME, null, "key = ?", new String[]{ _id }, null, null, null);
        return c;
    }
}



assets 폴더에 db 파일을 넣고


경로를

String savePath = "/mnt/sdcard/firstaid.db"; 로 잡았는데

실행시키면 db를 제대로 불러오지 못해서


혹시나해서 폰 기종을 바꿔 구글 넥서스(맞나..?)로 해보니 제대로 불러왔습니다.



제 핸드폰이 아트릭스인데

아트릭스는 db 저장경로가 다른가요...?