2012-04-11 1 views
3

ああ親愛なるが、助けてください!SDカードと構成の設定

private void copyDatabase() { 
    if(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){ 
     Toast.makeText(this, "External SD card not mounted", Toast.LENGTH_LONG).show(); 
    } 
    //Toast Message Always appears 
    try { 
     InputStream in = getAssets().open("Asset_Directory"); 


     File outFile = new File(Environment.getExternalStorageDirectory() + File.separator + "Asset_Directory"); 
     outFile.createNewFile(); 
     OutputStream out = new FileOutputStream(outFile); 


     byte[] buf = new byte[1024]; 
     int len; 
     while ((len = in.read(buf)) > 0) { 
      out.write(buf, 0, len); 
     } 

     out.close(); 
     in.close(); 
     Log.i("AssetCaptureActivity","Database has been transferred"); 
    } catch (IOException e) { 
     Log.i("AssetCaptureActivity","Could not open the file"); 
    } 
}` 

あなたが見ることができるように:私は私の資産フォルダにデータベースファイルをコピーし

まず、ここに私のコードです。 これを仮想SDカードにコピーして、データベースを編集できるようにします。 私のマニフェストにWRITE権限を追加しました。 私は[実行コンフィギュレーション]設定で何かを変更する必要があることを読んだが何?

私はアクセス許可が拒否されましたを取得しておくと、それは私のSDカードがマウントされていないと言います。

助けてください!

あなたは、外部記憶装置はまた、あなたがエミュレータのためにSDカードを有効にしているかどうかを確認のAndroidマニフェストに

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

を次の権限を追加利用できるかどうか

/** 
* @return <ul> 
*   <li><b>true: </b>If external storage is available</li> 
*   <li><b>false: </b>If external storage is not available</li> 
*   </ul> 
*/ 
public static boolean isExternalStorageAvailable() { 

    boolean isAvailable = false; 
    try { 
     String state = Environment.getExternalStorageState(); 
     if (Environment.MEDIA_MOUNTED.equals(state) 
       || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
      // We can read the media 
      isAvailable = true; 
     } else { 
      // Something else is wrong. It may be one of many other states, 
      // but all we need 
      // to know is we can not read 
      isAvailable = false; 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return isAvailable; 
} 

/** 
* @return <ul> 
*   <li><b>true: </b>If external storage is writable</li> 
*   <li><b>false: </b>If external storage is not writable</li> 
*   </ul> 
*/ 
public static boolean isExternalStorageWritable() { 

    boolean isWriteable = false; 
    try { 
     String state = Environment.getExternalStorageState(); 
     if (Environment.MEDIA_MOUNTED.equals(state)) { 
      // We can write the media 
      isWriteable = true; 
     } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
      // We can only read the media but we can't write 
      isWriteable = false; 
     } else { 
      // Something else is wrong. It may be one of many other 
      // states, but all we need 
      // to know is we can neither read nor write 
      isWriteable = false; 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return isWriteable; 
} 

であるかどうかを判断するには、次の方法を使用することができます

+0

Uが追加されているかどうかを確認? – Hardik4560

+0

は、はい、私は(!私は私の頭の上にこれ以上の髪を持っていない前にヘルプを)私が要求するあなたの方法のように私のAVD – Michelle1109Andriod

+1

にSDカードを作成し、午前しかし、あなたを助けることができません – Nepster

答えて

2

'Android Virtual Device Manager'(AVD)

移動し、'Edit'ボタンを押し、あなたのエミュレータの上でクリックしてください。 'Hardware'セクションでは、あなたがエミュレータやデバイス上でこれをしようと'SD card support = yes'

+0

ありがとう、私はこれを試してみて、戻って報告します! – Michelle1109Andriod

+0

は両方ともfalseを返しましたか?それらを両方とも真に戻すために私は何をすべきですか?エミュレータにSDカードをマウントするにはどうすればいいですか? – Michelle1109Andriod

+0

Androidマニフェストに読み書きのアクセス権を設定しました –

関連する問題