2015-05-23 8 views
-1

Я хочу получить имя своего пакета, когда он расширяет SQLiteOpenHelper. В этом классе я сам меняю имя своего пакета, и это жесткий код. Я просто хочу, чтобы он автоматически получил имя пакета. как я могу это исправить? Он простирается от SQLiteOpenHelper, а не Acctivity, это моя проблема.Получение имени пакета в android

enter code here 
    public class database extends SQLiteOpenHelper { 


public final String path="data/data/com.fatemehkh.hamkon/databases/"; 

public final String Name="database"; 
public SQLiteDatabase mydb; 

private final Context mycontext; 


public database(Context context) { 
    super(context, "database", null, 1); 
    mycontext=context; 

} 


@Override 
public void onCreate(SQLiteDatabase arg0) { 
    // TODO Auto-generated method stub 

} 
@Override 
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { 
    // TODO Auto-generated method stub 

} 


public void useable(){ 

    boolean checkdb=checkdb(); 

    if(checkdb){ 

    }else{ 

     this.getReadableDatabase(); 

     try{ 
     copydatabase(); 
     }catch(IOException e){ 
     } 

    } 



} 

public void open(){ 

    mydb=SQLiteDatabase.openDatabase(path+Name, null, SQLiteDatabase.OPEN_READWRITE); 

} 

public void close(){ 
    mydb.close(); 
} 

public boolean checkdb(){ 

    SQLiteDatabase db=null; 
    try{  
    db=SQLiteDatabase.openDatabase(path+Name, null, SQLiteDatabase.OPEN_READONLY); 
    } 
    catch(SQLException e) 
    { 

    } 
    //mydb.close(); 
    return db !=null ? true:false ; 

} 

public void copydatabase() throws IOException{ 
    OutputStream myOutput = new FileOutputStream(path+Name); 
    byte[] buffer = new byte[1024]; 
    int length; 
    InputStream myInput = mycontext.getAssets().open(Name); 
    while ((length = myInput.read(buffer)) > 0) { 
    myOutput.write(buffer, 0, length); 
    } 
    myInput.close(); 
    myOutput.flush(); 
    myOutput.close(); 
} 

как я изменяю эту линию.

public final String path="data/data/com.fatemehkh.hamkon/databases/"; 
+0

вы пробовали http://stackoverflow.com/questions/9810430/get-database-path – Mithun

+0

http://stackoverflow.com/questions/12723186/get -databases-directory-for-my-app-programatically –

+0

как? Im новый с Android. Вы объясните больше? – mhs

ответ

1

Попробуйте это:

public static final String DATABASE_NAME = "your_data.db"; 
public database(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 

    String path=context.getDatabasePath(database.DATABASE_NAME).getAbsolutePath(); 
} 
+0

Тогда когда и где я использую путь? – mhs

+0

Это действительно более широкий контекст. Я предлагаю вам вместо этого задать новый вопрос. Если этот ответ помог вам ответить на этот вопрос, пожалуйста, примите его. – Mithun

+0

Я не знаю, как его использовать. – mhs

Смежные вопросы