2016-06-15 9 views
0

私は私のSDカードにこのコードを書いたが、私は外部記憶装置という用語を誤解しているかどうかわからない、しかし、スクリーンショットではなく、私はHTCの一つM8sを使用していsdカードの代わりに内部メモリに保存

public void snapshot(View view) { 
    boolean mExternalStorageAvailable = false; 
    boolean mExternalStorageWriteable = false; 
    String state = Environment.getExternalStorageState(); 

    if (Environment.MEDIA_MOUNTED.equals(state)) { 
     mExternalStorageAvailable = mExternalStorageWriteable = true; 
    } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
     mExternalStorageAvailable = true; 
     mExternalStorageWriteable = false; 
    } else { 
     mExternalStorageAvailable = mExternalStorageWriteable = false; 
    } 

    if(mExternalStorageWriteable){ 
     File sdCard = Environment.getExternalStorageDirectory(); 
     File dir = new File (sdCard.getAbsolutePath() + "/DCIM/100MEDIA/"); 
     dir.mkdirs(); 
     String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
     final File file = new File(dir, "MapScreen"+timeStamp+".png"); 

     GoogleMap.SnapshotReadyCallback callback = new GoogleMap.SnapshotReadyCallback() { 
      Bitmap bitmap; 

      @Override 
      public void onSnapshotReady(Bitmap snapshot) { 
       bitmap = snapshot; 
       try { 
        FileOutputStream out = new FileOutputStream(file); 
        bitmap.compress(Bitmap.CompressFormat.PNG, 90, out); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }; 
     mMap.snapshot(callback); 
    } 
} 

SDカードの私の内部の携帯電話のメモリに保存されている

+0

https://developer.android.com/guide/topics/data/data-storage.html#filesExternal – antonio

+0

をご覧ください。この質問の回答を確認してください:http://stackoverflow.com/questions/17674634/save-and-reading-bitmaps-images-inside-in-inner-inner-inner-in-android – user3673952

+0

[Android 4.0以降の外部SDカードパスを取得するにはどうすればよいですか?](http://stackoverflow.com/questions/) 11281010/how-can-i-get-external-sd-card-path-for-android-4-0) – Bryan

答えて

0

外部記憶装置は、任意のストレージは、その世界が読める、必ずしもSDカード(またはリムーバブルその他デバイス)。内部ストレージはストレージであり、デフォルトではアプリケーション専用です。

リムーバブルを指定するには、多くのデバイス製造業者が異なるディレクトリ構造を使用するため、外部ストレージははるかに複雑です。答えはhereです。

+0

ありがとうが、残念ながらそれは私にとってはうまくいきませんでした。私は理由を知らないのですが、System.getenv( "EXTERNAL_STORAGE")がパス/ sdcardを取得しますが、このパスに保存すると、somファイルマネージャーapppがそこに表示されたときにファイルが常に電話機のメモリに保存され、 sdカードのための数学/ストレージが、私はこのパスをアプリケーションにwoudlntを保存した場合でも、SDカード(この場合はどこに保存されませんでした) – Lowrider

関連する問題