怎么写sd卡?

时间:2017-11-02 07:04:06

标签: android filesystems sd-card

我想在Oppo A37上将SQLite数据库备份到我的SD卡 我有权在清单

中写入外部
<div class="relative">
  Test data Test Data Test Data
  <div class="absolute1">
    SomedataT Data Test Data Test data Test Data Test DataTest data Test Data 
    <div class="absolute2">
      top 2
    </div>
  </div>
</div>  

和这行代码

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

运行db文件后会出现几个版本:

String outFileName = Environment.getExternalStorageDirectory().getPath() + 
"/SQLite/" + DBNAME + "_" + ext;

也许更多,可能是同一件事的很多别名,但全部都在手机内部存储空间

我发现我想要的是&#34; / storage / sdcard1 / SQLite /&#34;所以我尝试了adb

/storage/emulated/0/Sqlite/
/mnt/sdcard/SQLite/    
/sdcard/SQLite
/storage/sdcard0/SQLite/

确实有效但

 adb -d shell "run-as com.photobangkok.expences cat 
/data/data/com.photobangkok.expences/databases/money_DB > /storage/sd
card1/SQLite/money_DB"

产生错误(Permission Denied)并且被LINT挫败

没有关于如何使用我的SD卡的想法! 有人可以帮我告诉我使用正确的代码行吗?

1 个答案:

答案 0 :(得分:0)

一旦你发现SD卡的路径,你会发现你不能再写它了。谷歌不希望如此。通常,您可以写一个特定的应用目录,如..../Android/data/<packagename>/files

如果幸运的话,你可以找到getExternalFilesDirs()的最后一条路径。通常是第二个条目。

如果要在整个SD卡上书写,则应使用存储访问框架,并以Intent.ACTION_OPEN_DOCUMENT_TREE开头。