Friday, April 20, 2012

copy existing database on SD card

when i am running android application it store database directly in internal memory of emulator but application(.apk file) store in external storage.i am using 230 mb database ..i done following setting also



<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<manifest android:installLocation="preferExternal" >


in androidmainfest.xml file



public void copyDatabase() throws IOException 
{
if(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
{
Toast.makeText(mycontext,"External Sd card not mounted", Toast.LENGTH_LONG).show();
}
try
{
InputStream in=mycontext.getAssets().open("Demo.db");
File outFile =new File(Environment.getExternalStorageDirectory()+File.separator+ "Demo.db);
outFile.createNewFile();
OutputStream out= new FileOutputStream(outFile);
byte[] buf = new byte[1024];
int len;
while((len = in.read(buf))> 0)
{
out.write(buf,0,len);
}
out.close();
in.close();
Log.i("copyDatabase","Database Has been transferred");

}
catch(IOException e)
{
Log.i("CopyDatabase","could not copy database");
}

}
public boolean checkDatabase()
{
SQLiteDatabase checkdb=null;
try
{
String myPath="/sdcard/demo.db";
checkdb=SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

Log.i("checkDatabase database path",checkdb.getPath());
}
catch(SQLiteException e)
{
Log.e("Database doesn`t exist",e.toString());
}
if(checkdb!=null)
{
checkdb.close();
}
return checkdb != null ? true : false;


}
public void openDatabase() throws SQLException
{
String myPath="/sdcard/demo.db"
myDatabase=SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
}


I am getting this error INSTALL_FAILED_DEXOPT





No comments:

Post a Comment