安卓開發學習之——模擬器上SD卡存儲失敗問題

.
  最近學習到android的文件存儲,內部存儲和外部存儲(sd卡存儲),在SD卡存儲這一塊創建文件老失敗,各種搜索,折騰了一個下午加晚上終於弄明白問題所在,以此記錄下來或對他人有所幫助。

一、在AndroidManifest.xm中添加權限

在這裏插入圖片描述


	<!-- SDCard中創建與刪除文件權限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <!-- 向SDCardd讀寫入數據權限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

然而,並沒有軟用
  先看寫入文件代碼

    //寫入文件的處理
    private void write(String content){
    
    	String FILE_NAME = "sdFile.txt";
        //判斷sd卡是否存在
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
            
            try {
           		 //創建目標文件 /storage/emulated/0/sdFile.txt
                File targetFile=new File(Environment.getExternalStorageDirectory().getCanonicalPath()+"/"+FILE_NAME);
                Log.i("zzw",targetFile.getAbsolutePath());
                if(targetFile.exists()){
                    Log.i("zzw",targetFile.getAbsolutePath()+"創建成功!");
                }else{
                    Log.i("zzw",targetFile.getAbsolutePath()+"創建失敗!");
                    //targetFile.createNewFile();
                }
                
                //下面是將內容寫入文件
                FileOutputStream fos;
                try {
                    fos = new FileOutputStream(targetFile);
                    fos.write(content.getBytes());
                    fos.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }

.
  運行結果
  在這裏插入圖片描述文件夾中沒有目標文件sdFile.txt生成:
  在這裏插入圖片描述

二、我的自帶模擬器安卓版本爲7.0,需手動授權

先看看模擬器安卓版本
在這裏插入圖片描述試試手動開權限

在這裏插入圖片描述
果然創建成功
在這裏插入圖片描述看看文件夾:有了!
在這裏插入圖片描述
這麼一個小問題,坑了我這麼久,****!

參考:https://blog.csdn.net/xdqkid/article/details/53745569

發佈了13 篇原創文章 · 獲贊 17 · 訪問量 1627
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章