问题描述
编辑:糟糕,忘记显示表单的完整路径
当我尝试将所有内容转换为对我的URI使用FileProvider
时,这种情况开始尝试在Android 11之后的版本上发生。
在Android 11之前,我可以先将Uri.fromFile
/ setReadable
与setWritable
/ MyForm.pdf
结合使用,然后再将其填充,然后再填充PDF文件,这样可以节省时间它。
现在发生的事情是当我退出然后尝试返回时,它将打开PDF的重复副本,而不是原始副本。例如,第一次打开MyForm-1.pdf
,第二次(仅在以前进行更改的情况下)它将打开Log
在打开URI时,我做了一个MyForm.pdf
条目,以确保它不会以某种方式更改(并且我的应用程序中也没有执行此操作的机制)。它仍然正确命名为getFilesDir
。
我还尝试了从不同文件夹(getExternalFilesDir
与File theForm = new File(Uri.parse("file:///storage/emulated/0/Android/data/com.smartascii.myapp/files/MyForm.pdf").getPath());
Uri theUri = FileProvider.getUriForFile(getApplicationContext(),BuildConfig.APPLICATION_ID + ".provider",theForm);
pdf.setDataAndType(theUri,"application/pdf");
pdf.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
List<ResolveInfo> resInfo = getPackageManager().queryIntentActivities(pdf,0);
if (!resInfo.isEmpty()){
for (ResolveInfo info : resInfo) {
if (info.activityInfo.packageName.toLowerCase().contains("adobe.reader") ||
info.activityInfo.name.toLowerCase().contains("adobe.reader") ) {
pdf.setPackage(info.activityInfo.packageName);
found = true;
break;
}
}
if (found) {
startActivityForResult(pdf,EDIT_FORM);
} else {
startActivityForResult(Intent.createChooser(pdf,"Open form with..."),EDIT_FORM);
}
}
)中导入/读取PDF,以防其他应用访问我的应用文件夹中的文件存在其他问题。
打开PDF:
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external"
path="." />
<external-files-path
name="external_files"
path="." />
<cache-path
name="cache"
path="." />
<external-cache-path
name="external_cache"
path="." />
<files-path
name="files"
path="." />
</paths>
file_paths.xml:
HttpContext
我在这里缺少明显的东西吗?谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)