2016-10-03 167 views
0

我试图将文本文件存储在设备的手机存储器中,它正在使用哪个设备支持外部插槽,但它不适用于没有外部插槽的android手机(例如Samsung S6 Edge)。Android:将android设备的内部存储器中的文本文件存储在外部存储卡中?

这里是我的代码:

public void AfterSaveClick() { 

     OutputStream fOut = null; 

     try { 

      Toast.makeText(MainActivity.this, "Start",Toast.LENGTH_SHORT).show(); 
      //device basic path(phone memory) 
      File root = new File(Environment.getExternalStorageDirectory() 
        + File.separator + "Log_Folder" + File.separator); 
      root.mkdirs(); 
      File phoneMemoryTextMainDirectory = new File(root, "samples.txt"); 

      FileWriter writer = new FileWriter(phoneMemoryTextMainDirectory); 
      writer.append("Hello"); 
      writer.flush(); 
      writer.close(); 

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

我认为你使用的是正确的代码......是否有任何异常抛出? *注意:这里不要被“外部”一词所迷惑。此目录可以更好地被视为媒体/共享存储* - ['getExternalStorageDirectory()'](https://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()) –

+0

什么是异常你得到了吗? – JDenais

+0

我没有收到任何异常,sample.txt文件存储除S6 Edge,MotoG(其中不支持SD卡) – kgsharathkumar

回答

1

,我认为你应该做的是首先检查设备是否有外部存储,你可以使用这样的事情:

Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); 

如果设备有外部存储器然后使用您已有的路径,否则应该在手机的内部存储器中添加另一条路径。