【发布时间】:2014-05-17 19:03:52
【问题描述】:
所以我也用谷歌搜索了一些示例,但到目前为止,我还没有找到任何可以为我提供任何知识的来源,我是否可以将我的 sqlite db 保存在设备内部的任何其他文件夹中例如在“/system”文件夹中的内存,我知道只需执行以下操作即可将其保存在 sd 卡中
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "contactsManager";
// Contacts table name
private static final String TABLE_CONTACTS = "contacts";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";
public DatabaseHandler(Context context) {
super(context, "sd card path here "+DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
但是有什么方法可以像在“/system”文件夹中一样将数据库保存在内部存储器中?
【问题讨论】:
-
如果您的应用被分配了root权限,那么您可以访问内部存储器,而这只有在root手机中才有可能。 :)
-
@SaqibVohra,我的应用程序是系统应用程序,所以假设它具有读写权限,那么在这种情况下,我可以像示例一样简单地在构造函数中传递内部存储器的路径上面还是有不同的程序?
-
是的,没错 :) 如果你有 root 权限,你可以像 /system/app 一样访问文件夹。这里有一个类似的线程,你会发现它很有用。 :)
-
我在您的评论中没有看到任何链接,如果您将这个作为答案与该链接一起留下,我会检查它作为正确答案。