2013-01-23 71 views
4

我試圖檢查外部存儲是否可用,或者甚至我認爲我做了所有正確的事情,但仍然說存儲不可用。Environment.getExternalStorageState()在虛擬設備上返回false

private String state; 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     setContentView(R.layout.externaldata); 
     eWrite = (TextView) findViewById(R.id.tveWrite); 
     eRead = (TextView) findViewById(R.id.tveRead); 
     enviromentState = Environment.getExternalStorageState();   
if (enviromentState.equals(Environment.MEDIA_MOUNTED)) { 
        // read and write 
        eWrite.setText("you can write"); 
        eRead.setText("you can read"); 
       } else if (enviromentState.equals(Environment.MEDIA_MOUNTED_READ_ONLY)) { 
        // read but cant write 
        eWrite.setText("you cannot write "); 
        eRead.setText("but you can read"); 
       } else { 
        eWrite.setText("you cannot write"); 
        eRead.setText("you canot read"); 
       } 
    } 

,我也AndroidManifest.xml中

給權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

我在這裏的虛擬設備的屏幕截圖。

ScreenShot

+0

是 「虛擬設備」 仿真器固定我的問題?你配置了一張SD卡嗎? – dmon

+0

你在Windows上工作嗎?我記得有一段時間我需要將運行Eclipse的用戶的權限授予模擬器在操作系統上運行的路徑 – DigCamara

+0

是的,我配置了sd卡。我正在使用Mac OSX山獅。 –

回答

2

我通過擴大SD卡大小151mb

+0

出於好奇,你是怎麼來的這個數字? –

+1

已經有一段時間了,但如果我沒有記錯,我只是增加了默認值150 1:p –

+0

啊。這解釋了它。我的默認值是100,這讓我感到驚訝。 –