iT邦幫忙

0

Android外接SD卡存取問題

  • 分享至 

  • xImage

我在做專案(compileSdkVersion 30)的時候需要在外接的SD卡建立SQLite的DB,已經get到路徑為/mnt/media_rw/3531-3664,也有開啟READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE、READ_MEDIA_STORAGE的權限,可是在openOrCreateDatabase還是會發生Could not open database的問題,請問有人知道怎麼解決嗎?
code:

https://ithelp.ithome.com.tw/upload/images/20210510/20136882Zq1FMpeW5m.jpg

https://ithelp.ithome.com.tw/upload/images/20210510/20136882wCokmZvq2W.jpg

https://ithelp.ithome.com.tw/upload/images/20210510/20136882uom0OyGi4s.jpg

Log:

https://ithelp.ithome.com.tw/upload/images/20210510/201368822nbqT1AU06.jpg

https://ithelp.ithome.com.tw/upload/images/20210510/20136882M0KpbFYdkk.jpg

https://ithelp.ithome.com.tw/upload/images/20210510/20136882gJjhXILwOP.jpg

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
japhenchen
iT邦超人 1 級 ‧ 2021-05-10 11:02:52
看更多先前的回應...收起先前的回應...

您好,我先前已經有先按照該篇文章底下方法2確認plateform.xml權限也已經在mainfest.xml中新增uses-permission,可是要執行第二及第三步驟時發現在android studio的device file explorer中沒有mnt/runtime的存取權限,請問應該要怎麼解決呢?
感謝您的幫忙

Android版本呢?

您是指gradle嗎
https://ithelp.ithome.com.tw/upload/images/20210510/20136882GP2BEGhu2c.jpg

android8可以用取得用戶權限的方式處理
9.0(含)以上版本就需要root了

我記得Google有限制之後的Android API版本...,所以是只能Root了是嗎?
謝謝您的幫忙

0
海綿寶寶
iT邦大神 1 級 ‧ 2021-05-11 09:09:43

根據這篇的說法是不建議這麼寫(使用外接SD卡存取SQLite檔案)

比較建議的方法是使用 getDatabasePath on Context
讓系統來告訴你目前合適(你也有權限讀寫)的位置

getDatabasePath 有18種範例寫法可以參考這篇

好的,我再試試看,感謝您的幫忙。

我要發表回答

立即登入回答