Java 使用Android文件提供程序时,文件不';尽管在意向中标记了标志“授予”、“写入”和“URI”权限,但没有正确的权限

Java 使用Android文件提供程序时,文件不';尽管在意向中标记了标志“授予”、“写入”和“URI”权限,但没有正确的权限,java,android,Java,Android,我正在尝试使用Microsoft Word和PDF查看器从我的应用程序中的文件加载文档,我正在使用文件提供商处理Android 7.0+不允许自由传递文件URI。我像这样获取URI,并在打开它之前设置意图标志以允许读写,如下所示: // From the byte array create a file containing that data, and get extension and MIME type. File fileToOpen = byteArra

我正在尝试使用Microsoft Word和PDF查看器从我的应用程序中的文件加载文档,我正在使用文件提供商处理Android 7.0+不允许自由传递文件URI。我像这样获取URI,并在打开它之前设置意图标志以允许读写,如下所示:

// From the byte array create a file containing that data, and get extension and MIME type.
                File fileToOpen = byteArrayToFile(documentData, shortFileName);
                String fileExtension = UtilityMethods.getFileExtension(fileToOpen.getName());
                String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(fileExtension);

                // Get the Uri for the file from the file provider, open using intent.
                Uri documentUri = FileProvider.getUriForFile(getContext(), "com.mycompany.provider", fileToOpen);
                Intent intent = new Intent();
                intent.setDataAndType(documentUri, mime);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
                intent.setAction(Intent.ACTION_VIEW);
                startActivity(intent);

但是,在MS Word中加载文件时,该文件是只读的,无法编辑,这不是所需的行为。我哪里出错了?

问题似乎确实出在MS word android应用程序上,而不是我的代码上——GoogleDocs.apk将使用该代码打开文件并允许写访问。恼人。如果出现类似错误,任何其他应用程序都会工作并打开一个文件进行编辑,但MS Word(以及MS的其他office应用程序)似乎无法检查其是否具有写入权限。真烦人。微软意识到了吗?如何在他们这方面“开罚单”?这个问题有什么新的解决方案吗?因为,使用任何文件管理器,我都可以用写权限打开word文件,使用我的应用程序,它们是只读的,只是写了一份技术文档,我仍然发现:Microsoft必须尽快解决这个问题!