【问题标题】:android SQLite database with databse on specific location possible?android SQLite数据库与特定位置的数据库可能吗?
【发布时间】:2014-01-06 11:08:02
【问题描述】:

我正在开发一个需要数据库的 APP,我已经创建了数据库,它接受了查询,创建了数据库,并且我能够执行所有操作。 以下是有效的数据库:

    import java.util.ArrayList;
    import java.util.List;

    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;

    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 = "sandeep.db";

// Table name
private static final String TABLE_C = "table_data";

// 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, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_TABLE = "CREATE TABLE " + TABLE_C + "("
            + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
            + KEY_PH_NO + " TEXT" + ")";
    db.execSQL(CREATE_TABLE);
 }
}

数据库是在默认位置 /data/dataapp_name/ 中创建的,但由于手机没有根,我无法访问它。

我的问题:
1. 如何在可公开访问的sdcard或手机内存上创建sandeep.db? 2. 我可以创建一个类似 Whatsapp 的文件夹并将我的数据库驻留在其中吗?

【问题讨论】:

    标签: android sqlite android-sqlite android-sdcard


    【解决方案1】:

    使用这个名为SQLiteDatabase.openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory) 的方法。 它将允许您在 sdcard 上创建数据库。

    您需要在您的 AndroidManifest.xml 中添加以下权限,

    android.permission.WRITE_EXTERNAL_STORAGE
    

    【讨论】:

    • 感谢@vigbyor 的回复。你能建议我任何相同的例子或链接吗?
    • 当然,但先试试你自己,然后我会给你链接和工作示例。
    • Environment.getExternalStorageDirectory() 不会在模拟器上给我外部目录路径。我说的对吗?
    • 不起作用。 File file_str = Environment.getExternalStorageDirectory(); String DATABASE_FILE_PATH = file_str.toString(); 使用这个我无法传递字符串路径
    • 你有没有在Androidmanifest.xml中授予读取SD卡的权限?
    猜你喜欢
    • 1970-01-01
    • 2011-06-11
    • 2016-05-08
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多