为Android的sqlite数据库使用自定义文件

有没有可能为sqlite数据库文件select一个自定义位置?

如果可能,我想将数据库文件存储在存储卡中。 如果用户从一个存储卡切换到另一个存储卡,我希望我的应用程序使用卡上可用的任何版本的数据库文件。

  • 原始SQLite游标上的registerContentObserver()
  • ActiveAndroid抽象类表
  • Android的ExpandableListActivity和SimpleCursorTreeAdapter?
  • SQLite光标如何在内部工作?
  • 如何在Android中访问现有的sqlite数据库?
  • 如何检查Android SQLite数据库中是否存在表?
  • 可能从Android SQLiteConstraintException获取具体的错误细节?
  • 如何在sql lite where子句中包含一个布尔值
  • 默认情况下,你的数据库存储在data / data / your_package / databases中

    您可以使用SQLiteDatabase openOrCreateDatabase ,您可以将自定义数据库的path作为第一个参数。

    您可以使用以下命令访问存储在SD卡上的数据库:

     import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; public class MyClass { private SQLiteDatabase myDB = null; // Constructor public MyClass() { try { myDB = SQLiteDatabase.openDatabase(stPathToDB, null, SQLiteDatabase.NO_LOCALIZED_COLLATORS|SQLiteDatabase.OPEN_READONLY); } catch (SQLException e) { e.printStackTrace(); } } // Destructor public void finalize() { myDB.close(); } } 

    NO_LOCALIZED_COLLATORS =在不支持本地化的整理器的情况下打开数据库。

    为了获得你的SD卡的path,你可以使用:

     stPathToDB = android.os.Environment.getExternalStorageDirectory().toString()+"/dbase.sqlite" 

    Rgds Layne