2017-10-18 12 views
0

イメージにExifタグを使用したい。 タグを読むのは非常に簡単で、うまく動作しますが保存しません。ExifInterfaceタグを保存するとIOExceptionがスローされる

private void saveTag(String tag, String value) { 
    try { 
     ExifInterface exif = new ExifInterface(imagePath); 
     exif.setAttribute(tag, value); 
     exif.saveAttributes(); 
    } catch (IOException ioe) { 
     toast("Image no longer exists!"); 
    } catch (NullPointerException npe) { 
     toast("No image loaded!"); 
    } 
} 

毎回、IOExceptionがスローされます。どうすればよいですか?

が付与された:

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

どの画像パスが正しいかを確認する必要があります。物理ファイルを参照していないFile.getAbsolutePath()を使用している可能性があります。 – Thracian

+0

私は意図でイメージを選択し、URIを取得し、パスに変換しました.TAG_DATETIMEの読み取りは、そのパスを使用しても動作しません。 – Andreisk

+0

これは問題です。あなたはfile://を持つパスを持っていません、あなたはcontent://を持つものを取得しています。この[リンク](https://stackoverflow.com/questions/46442700/writing-exif-data-to-image-saved-with-documentfile-class)をご覧ください。 – Thracian

答えて

0

を私はExifのインターフェイスで開くときに画像がデバイスのストレージに配置されなければならないことが分かりました。まずSDカードからデバイスのストレージに画像をコピーする必要があります。

関連する問題