!! MP4 파일 공유할때 발생한 에러 !!
처음 에러를 맞딱드렸을때, 경로의 문제라는것만 짐작할 수 있었다.
08-29 11:21:33.817 8431-9377/com.iofit E/DatabaseUtils: Writing exception to parcel
java.lang.IllegalArgumentException: Unknown URI: content://com.iofit.database/external_files/DCIM/iofit/video_1535503745198.mp4
at com.iofit.database.IOFITContentProvider.query(IOFITContentProvider.java:385)
at android.content.ContentProvider.query(ContentProvider.java:1063)
at android.content.ContentProvider.query(ContentProvider.java:1155)
at android.content.ContentProvider$Transport.query(ContentProvider.java:244)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:102)
at android.os.Binder.execTransact(Binder.java:682)
Provider 파일에서 meta-data 가 없어서 발생한 경로 문제 같다.
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="패키지명" + ".fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
그리고 res > xml 폴더를 만들고 filepaths.xml 파일을 생성했고
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="external_files" path="."/>
</paths>
MP4 파일을 공유할때, 아래와 같이 파일을 공유했다.
Uri videoUrl = FileProvider.getUriForFile(ReviewPlayerActivity.this, Provider 의 Authorities 명, tempFile);
Intent videoSharingIntent = new Intent(Intent.ACTION_SEND);
videoSharingIntent.setType("video/*");
videoSharingIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
videoSharingIntent.putExtra(Intent.EXTRA_STREAM, videoUrl);
startActivity(Intent.createChooser(videoSharingIntent, "Share video using"));
참고 :
'Dev > Error' 카테고리의 다른 글
[Error] Aapt2InternalException: AAPT2 aapt2-3.3.2-5309881 (0) | 2019.03.19 |
---|---|
[Android / Error] resource android:attr/fontVariationSettings not found. (0) | 2018.12.20 |
NDK17 버전 때문에 발생 - mips64el-linux-android-strip (0) | 2018.07.16 |
MediaProjection 는 null 검사가 필요하다. (0) | 2018.03.08 |
Android Error - Caused by: android.view.InflateException: Binary XML file line #0: (0) | 2018.02.07 |