Android 數(shù)據(jù)庫(kù)SQLite 寫(xiě)入SD卡的方法
如果手機(jī)沒(méi)有root,數(shù)據(jù)庫(kù)文件是無(wú)法查看到的,不方便調(diào)試。
最好的辦法是把數(shù)據(jù)庫(kù)寫(xiě)進(jìn)SD卡。
修改的地方有兩處:
1.在你的helper類(lèi)中把數(shù)據(jù)庫(kù)文件名稱(chēng) DATABASE_NAME 由原來(lái)的一個(gè)文件名,修改成路徑的形式。
修改前:DATABASE_NAME = "demo.db"
public class MyDBHelper extends SQLiteOpenHelper {
public static final int VERSION = 1; //數(shù)據(jù)庫(kù)版本號(hào)
public static final String DATABASE_NAME = "demo.db"; //數(shù)據(jù)庫(kù)名稱(chēng)
public static final String TABLE_NAME = "mytag"; //數(shù)據(jù)表名稱(chēng),一個(gè)數(shù)據(jù)庫(kù)可以包含多張數(shù)據(jù)表,類(lèi)似于excel中的sheet1,sheet2
//MyDBHelper 的構(gòu)造函數(shù),我們關(guān)心的是名稱(chēng)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; //數(shù)據(jù)庫(kù)版本號(hào)
public static final String DATABASE_NAME = "/mnt/sdcard/demo.db"; //數(shù)據(jù)庫(kù)名稱(chēng)
public static final String TABLE_NAME = "mytag"; //數(shù)據(jù)表名稱(chēng),一個(gè)數(shù)據(jù)庫(kù)可以包含多張數(shù)據(jù)表,類(lèi)似于excel中的sheet1,sheet2
//MyDBHelper 的構(gòu)造函數(shù),我們關(guān)心的是名稱(chēng)DATABASE_NAME和版本VERSION
public MyDBHelper(Context context) {
super(context, DATABASE_NAME, null, VERSION);
}
因?yàn)槿绻皇且粋€(gè)單獨(dú)的文件名,最后創(chuàng)建的數(shù)據(jù)庫(kù)文件就是保存在手機(jī)內(nèi)部存儲(chǔ)卡(不是運(yùn)行內(nèi)存,也不是SD卡)的/data/data/包名稱(chēng)/databases 目錄下,而沒(méi)有root的手機(jī),這個(gè)/data根文件夾是進(jìn)不去的,用adb shell方式也打不開(kāi)。
2.最后,千萬(wàn)別忘了修改權(quán)限!
Android手機(jī)是有著嚴(yán)格的安全管控的,SD卡屬于外部存儲(chǔ)器,訪(fǎng)問(wèn)上面的文件需要添加權(quán)限。
在AndroidManifest.xml 中添加兩條SD卡讀寫(xiě)權(quán)限即可:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如果沒(méi)有添加權(quán)限,那么程序就會(huì)異常終止。
以上所述是針對(duì)Android 數(shù)據(jù)庫(kù)SQLite 寫(xiě)入SD卡的方法,希望對(duì)大家有所幫助!
- Android SQLite數(shù)據(jù)庫(kù)增刪改查操作的使用詳解
- Android使用SQLite數(shù)據(jù)庫(kù)的簡(jiǎn)單實(shí)例
- android創(chuàng)建數(shù)據(jù)庫(kù)(SQLite)保存圖片示例
- Android中操作SQLite數(shù)據(jù)庫(kù)快速入門(mén)教程
- Android創(chuàng)建和使用數(shù)據(jù)庫(kù)SQLIte
- Android SQLite數(shù)據(jù)庫(kù)增刪改查操作的案例分析
- android通過(guò)jxl讀excel存入sqlite3數(shù)據(jù)庫(kù)
- Android操作SQLite數(shù)據(jù)庫(kù)(增、刪、改、查、分頁(yè)等)及ListView顯示數(shù)據(jù)的方法詳解
- Android批量插入數(shù)據(jù)到SQLite數(shù)據(jù)庫(kù)的方法
- Android利用listview控件操作SQLite數(shù)據(jù)庫(kù)實(shí)例
- Android應(yīng)用中內(nèi)嵌SQLite數(shù)據(jù)庫(kù)的基本操作指南
- Android+SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)的生詞記事本功能實(shí)例
相關(guān)文章
Android的Fragment的生命周期各狀態(tài)和回調(diào)函數(shù)使用
這篇文章主要介紹了Android的Fragments的生命周期各狀態(tài)和回調(diào)函數(shù)使用,Fragments的生命周期與Activity息息相關(guān),需要的朋友可以參考下2016-02-02
logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法
這篇文章主要介紹了logcat命令使用方法和查看android系統(tǒng)日志緩沖區(qū)內(nèi)容的方法,需要的朋友可以參考下2014-02-02
Android實(shí)現(xiàn)觸發(fā)html頁(yè)面的Button控件點(diǎn)擊事件方式
這篇文章主要介紹了Android實(shí)現(xiàn)觸發(fā)html頁(yè)面的Button控件點(diǎn)擊事件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android仿天天動(dòng)聽(tīng)歌曲自動(dòng)滾動(dòng)view
這篇文章主要為大家詳細(xì)介紹了Android仿天天動(dòng)聽(tīng)歌曲自動(dòng)滾動(dòng)view的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
Android實(shí)現(xiàn)多線(xiàn)程斷點(diǎn)下載
大家好,本篇文章主要講的是Android實(shí)現(xiàn)多線(xiàn)程斷點(diǎn)下載,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下2022-01-01
Android 2.3.7.r1 camera錄像過(guò)程中按menu菜單鍵時(shí)會(huì)停止錄像
android GB版本的camera錄像過(guò)程中按“菜單”鍵會(huì)停止錄像,改成錄像時(shí)按menu鍵不做處理,具體修改方法如下,感興趣的朋友可以參考下哈2013-06-06
flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)
這篇文章主要為大家介紹了flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)的過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Android屏幕手勢(shì)檢測(cè)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android屏幕手勢(shì)檢測(cè)的實(shí)現(xiàn)代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11

