2017-12-07 4 views
-1

私はURLを使ってロードされた画像ビューを持っています。 ビューに画像をダウンロードし、携帯電話の内蔵/外付けドライブに保存します。しかし、私はStackoverflow上のすべての可能なメソッドを試しても、外部メモリの読み書きにアクセスするためにモバイル上で与えられた前提でドライブにアクセスできませんでした。何も動作していないようだが、私はなぜそれが分からないのだろうか?Android:画像を保存するためにストレージにアクセスできない

これは私のコードです。どこが間違っているのか教えてください。 SDカードのディレクトリではありません

BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); 
    Bitmap bitmap = drawable.getBitmap(); 

    File sdCardDirectory = Environment.getDataDirectory(); 
    File image = new File(sdCardDirectory, "test.png"); 
    boolean success = false; 

    // Encode the file as a PNG image. 
    FileOutputStream outStream; 
    try { 

     outStream = new FileOutputStream(image); 
     bitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); 
    /* 100 to keep full quality of the image */ 

     outStream.flush(); 
     outStream.close(); 
     success = true; 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    if (success) { 
     Toast.makeText(getApplicationContext(), "Image saved with success", 
       Toast.LENGTH_LONG).show(); 
    } else { 
     Toast.makeText(getApplicationContext(), 
       "Error during image saving", Toast.LENGTH_LONG).show(); 
    } 

マニフェスト権限

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

正確に何が失敗しているのかに関する情報を提供することなく、問題を解決することはできません。 –

+0

@HoboJoe「画像保存中にエラーが発生しました」 –

+0

これはAPI> 23デバイスですか?その場合は、実行時に許可を求める必要があります。 https://developer.android.com/training/permissions/requesting.htmlマニフェストにパーミッションを置くことは、事前に十分なプレースメントです。 –

答えて

0
File sdCardDirectory = Environment.getDataDirectory(); 

Environment.getDataDirectory().getAbsolutePath() == /data 

あなたには書き込み権限がありません。より良い使い方

これはあなたの権限を正しく取得した場合に動作します。

しかし、それはSDカードに保存されません!

+0

ちょっと、可能な限り保存したいと思います。外部ストレージまたは内部ストレージ。私は最初に、それは内部ストレージと一緒に行ったので動作しなかった外部ストレージディレクトリを試してみました..両方が動作していないようです。 –

+0

実行時の権限が必要な場合は、外部ストレージが動作するはずです。どのようなエラー例外がありますか?再試行する!あきらめてはいけない。 – greenapps

関連する問題