Android getUriForFile IllegalArgumentException

后端 未结 3 1690
天涯浪人
天涯浪人 2021-01-16 11:02

My code for sending a file with an Intent doesn\'t work with all file sources and I could not find the solution yet:

My app is registered for opening files, so when

3条回答
  •  执念已碎
    2021-01-16 12:00

    The problem was using getUriForFile for file system paths and also for File Provider paths that actually must be used with a content resolver, so the solution was following:

                Uri uri;
                if (ContentResolver.SCHEME_CONTENT.equals(fileUri.getScheme())) {
                    uri = new Uri.Builder()
                            .path(fileUri.getPath())
                            .authority(fileUri.getAuthority())
                            .scheme(ContentResolver.SCHEME_CONTENT)
                            .build();
                } else {
                    uri = getUriForFile(context, "com.myapp.fileprovider", new File(fileUri.getPath()));
                }
    

提交回复
热议问题