在android中获取包名称

时间:2015-05-23 18:33:09

标签: android sqlite

我希望在扩展SQLiteOpenHelper时获取我的包名。在这个课程中,我自己更改了我的包名,这是硬编码。我只想自动获取包名称。我该怎么办呢?它延伸自SQLiteOpenHelper而非Acctivity,这是我的问题。

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/";

1 个答案:

答案 0 :(得分:1)

试试这个:

    @Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawImage(image, 0, 0, this);
    System.out.println("Paiting imagepanel with size " + getSize());
}