0

私はこのコードを持っています:

try {
            URL url = new URL (strURL);
            input = url.openStream();
            byte[] buffer = new byte[1500];
            OutputStream output = new FileOutputStream ("/sdcard/"+pos+".png");

そして、私はこのエラーを受け取ります: /sd card/ use environment.getexternalstoragedirectory().getpath() をハードコーディングしないでください

 OutputStream output = new FileOutputStream ("/sdcard/"+pos+".png");

私はそれについて読んだ: Android 4.2 - Environment.getExternalStorageDirectory().getPath() の動作

問題は、置き換えたときに最終的なコードはどうなるかということです。

4

2 に答える 2

6

一部の携帯電話で異なるsdフォルダ名

サムスンの携帯電話では、 external_sd という名前で、コードは失敗します。

control+shift+o --> Eclipse でインポートを追加するには、このリンクを参照してください

"/sdcard/" is replace with "Environment.getExternalStorageDirectory().getPath()" in your code

問題は、Environment.java というファイル自体を呼び出すことでした。そのため、Eclipse では環境の変更をインポートする選択肢がありませんでした。

于 2013-10-18T06:00:57.343 に答える
3

修正されたコードは次のようになります

OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory().getPath()+pos+".png");

/sdcard/すべてのデバイスにパスがあるわけではないため、注意が必要です。

デバイスは何年にもわたって変更されており、これには適切な外部ストレージ ディレクトリへのリンクが常に含まれているとは限りません。

于 2013-10-18T06:00:21.570 に答える