Android SD卡写入不了权限被拒绝该怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (64)

我正在尝试使用下面的代码(android.permission.WRITE_EXTERNAL_STORAGE已在manifest.xml中设置权限)将文件写入SDCard 。执行nmea_file.createNewFile();它时抛出异常Permission Denied:

这边是什么原因呢?代码如下:

if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) 
  {
     Log.d(TAG, "Sdcard was not mounted !!" ); 
  }
else
  {
    File nmea_file; 
    File root = Environment.getExternalStorageDirectory();
    FileWriter nmea_writer = null;
    try {
        nmea_file = new File(root,"NMEA.txt");
        if(!nmea_file.exists()) {
                Log.w(TAG, "File Doesn't Exists!");
                nmea_file.createNewFile();
            }
        nmea_writer = new FileWriter(nmea_file);
        nmea_writer.append(nmea);
        nmea_writer.flush();
    }
    catch (IOException e) 
    {
        Log.w(TAG, "Unable to write", e);
    } 
    finally 
    {
        if (nmea_writer != null) 
        {
            try 
            {
                nmea_writer.close();
            } 
            catch (IOException e) 
            {
                Log.w(TAG, "Exception closing file", e);
            }
        }
    }
  }
提问于
用户回答回答于

如果SD卡被某些操作阻止,可能会发生这种情况,例如:

  1. 准备从插槽中卸除SD卡
  2. 设备连接到PC作为外部USB驱动器
用户回答回答于

你把下面这行添加到manifest.xml:

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

扫码关注云+社区