Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 數據庫SQLite 寫入SD卡,androidsqlite

Android 數據庫SQLite 寫入SD卡,androidsqlite

編輯:關於android開發

Android 數據庫SQLite 寫入SD卡,androidsqlite


如果手機沒有root,數據庫文件是無法查看到的,不方便調試。

最好的辦法是把數據庫寫進SD卡。

 

修改的地方有兩處:

1.在你的helper類中把數據庫文件名稱 DATABASE_NAME 由原來的一個文件名,修改成路徑的形式。

修改前:DATABASE_NAME = "demo.db"

public class MyDBHelper extends SQLiteOpenHelper {
    public static final int VERSION = 1;        //數據庫版本號
    public static final String DATABASE_NAME = "demo.db";       //數據庫名稱
    public static final String TABLE_NAME = "mytag";        //數據表名稱,一個數據庫可以包含多張數據表,類似於excel中的sheet1,sheet2

    //MyDBHelper 的構造函數,我們關心的是名稱DATABASE_NAME和版本VERSION
    public MyDBHelper(Context context) {
        super(context, DATABASE_NAME, null, VERSION);
    }

修改後:DATABASE_NAME = "/mnt/sdcard/demo.db"

public class MyDBHelper extends SQLiteOpenHelper {
    public static final int VERSION = 1;        //數據庫版本號
    public static final String DATABASE_NAME =  "/mnt/sdcard/demo.db";       //數據庫名稱
    public static final String TABLE_NAME = "mytag";        //數據表名稱,一個數據庫可以包含多張數據表,類似於excel中的sheet1,sheet2

    //MyDBHelper 的構造函數,我們關心的是名稱DATABASE_NAME和版本VERSION
    public MyDBHelper(Context context) {
        super(context, DATABASE_NAME, null, VERSION);
    }

因為如果只是一個單獨的文件名,最後創建的數據庫文件就是保存在手機內部存儲卡(不是運行內存,也不是SD卡)的/data/data/包名稱/databases 目錄下,而沒有root的手機,這個/data根文件夾是進不去的,用adb shell方式也打不開。

 

2.最後,千萬別忘了修改權限!

Android手機是有著嚴格的安全管控的,SD卡屬於外部存儲器,訪問上面的文件需要添加權限。

在AndroidManifest.xml 中添加兩條SD卡讀寫權限即可:

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

 如果沒有添加權限,那麼程序就會異常終止。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved