Android Tip

안드로이드 8.0에서의 android.os.FileUriExposedException 버그 해결

오마로 2018. 5. 10. 16:57
반응형


안드로이드 8.0 이상에서 발생하는 버그가 아닌 보안이 강화되었음 ^^;

기존 사용 uri

Uri photoURI = Uri.fromFile(createImageFile());

이렇게 사용하면 에러가 발생한다. ㅠㅜ

android.os.FileUriExposedException

그래서, 앞으로 이렇게 사용하라고 하네요 ^^

Uri photoUri = FileProvider.getUriForFile(this, getApplicationContext().getPackageName() + ".provider", new File(filePath));

1. AndroidManifest.xml 에서 추가

<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths"/> </provider>

2. res > xml 폴더에 provider_paths.xml 추가

<?xml version="1.0" encoding="utf-8"?> <paths xmlns:android="http://schemas.android.com/apk/res/android"> <external-cache-path name="external_files" path="."/> <external-path name="external_files" path="."/> </paths>

그러면, 예외발생이 하지 않습니다.

음. 새로운 OS가 나올 때마다 버그가 발생하네요 ^^;

오늘도 화이팅입니다.


반응형