问题标签 [android-fileprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 用于 ext sdcard 的 Android FileProvider
例如,我正在使用 FileProvider 将我的内部文件公开给图库。为了使其更加统一,我还将外部文件放入提供程序(通过外部路径),但对于可移动 sd 卡中的文件,它不起作用。说类似该文件夹的内容是未经授权的。
任何帮助将不胜感激。
谢谢
android - 为什么不在 StreamProvider 中获取 UriFromFile?
我正在使用https://github.com/commonsguy/cwac-provider共享存储在“getExternalFilesDir”中的文件,因为 Android FileProvider 没有标签(虽然文档说它有,但你知道这是一个老错误文件)
我了解并非与 StreamProvider 共享的每个内容都是一个文件,但拥有“getUriFromFile”方法会很有用。由于没有这种方法,我是否需要“手动”创建 uris?
android - FileProvider 不使用相机
我正在尝试让 Camera App 将输出存储到我的内部存储器中。我也了解第三方应用程序无法访问我的应用程序的内部存储,但我们可以通过FileProvider
. 我已按照此处的指南进行操作:
我AndroidManifest.xml
通过以下方式指定我的:
我创建了一个名为的 xmlfile_provider_path.xml
文件/res/xml/
:
这就是我创建和调用相机意图的方式:
当我运行应用程序时,我可以获得以下 Logcat 结果:
就在相机关闭的那一刻,我遇到了以下异常:
任何人都可以帮助解释为什么会出现问题吗?我已经为我的问题创建了一个示例项目:http ://www.axzae.com/downloads/CameraWithFileProvider.zip
无论如何,如果我明确指定,该应用程序将起作用:
但这仅适用于 nexus/cyanogen 设备。三星相机应用程序可能使用不同的包名称。
android - 为什么我必须在使用 grantUriPermission 之前调用其他应用程序?
我对grantUriPermission函数有点困惑。我想用它通过FileProvider授予对另一个应用程序的文件访问权限。由于 FileProvider 必须是本地的(非导出的)有充分的理由,我必须授予其他应用程序临时读/写权限。文档说:
通常你应该使用 Intent.FLAG_GRANT_READ_URI_PERMISSION 或 Intent.FLAG_GRANT_WRITE_URI_PERMISSION 来启动一个活动,而不是直接使用这个函数。如果直接使用此函数,则应确保在不再允许目标访问它时调用 revokeUriPermission(Uri, int)。
很公平,因为我不需要打开活动,也不需要显式启动服务(其他应用程序会在时机成熟时要求提供该文件),但我可以简单地接受:
令我惊讶的是,我仍然收到安全异常:
经过几次实验后,我发现我必须至少通过 Intent 调用另一个应用程序一次:
一旦我这样做了,我就可以按预期做所有事情——我可以删除这个意图代码,我什至可以重新安装这两个应用程序,它仍然可以工作(!)。似乎有一个隐藏的要求,即所有者必须至少调用另一个应用程序一次并将其存储在系统中的某个位置。
这是在某处记录的吗?
编辑:首先我想我也必须使用 Intent.FLAG_GRANT_READ_URI_PERMISSION 标志,但这似乎没有必要。
android - 找不到包含 /data/data/ [FileProvider] 的已配置根目录
我是 android 新手,现在我坚持生成内容 Uri。我已经从 listView 显示了目录中的所有文件我尝试在用户单击指定项目时使用 FileProvider.getUriForFile() 生成内容 Uri
我在清单中的 FileProvider
文件路径 XML
当我单击文件之一时,它总是这样显示
当局有什么问题吗?
android - 如何使用文件提供程序的外部路径指定 /storage/emulated/legacy?
所以在我正在使用的项目中,图片存储到/sdcard/<app made folder>
,我们通过使用文件提供程序将存储在这里的图片共享给其他应用程序。因此,当文件提供程序尝试获取文件的 uri 时,它会调用 getCanonicalPath() 来返回 path /storage/emulated/legacy/<our folder>/<our file>
。
通过文件提供程序进行调试,我看到当它检查文件路径时,它会通过检查/storage/emulated/0
我试过做:
在 filepaths.xml 中,但是当文件提供程序检查它时,它会将其解析为:<storage/emulated/0/storage/emulated/legacy/JCG Camera/<file>
如何指定/storage/emulated/legacy
文件提供程序的路径?
java - 试图打开pdf文件Android
我面临这个错误:
是因为这行代码:
我遵循了我找到的资源:http: //developer.android.com/reference/android/support/v4/content/FileProvider.html
如何使用支持 FileProvider 将内容共享给其他应用程序?
但是我仍然无法解决我遇到的错误。
下面你可以看到我的代码:
SingleCarActivity.java:
AndroidManifest.xml:
文件路径.xml:
下面你可以看到我的项目结构的截图:链接:http: //i.imgur.com/4dbhcKF.png
android - 在 Android FileProvider 中更改显示名称的正确方法是什么?
假设我在内部文件系统上有文件名1234567.png - 假设我想将其发送给用户并共享intent
为CoolPicture.png - 即子类 fileprovider 并替换查询方法。
使用基于超级光标的矩阵光标是一个好计划吗?
似乎DISPLAY_NAME
并且SIZE
是唯一的列,但似乎无法确认SIZE
是 int 还是 string。
- http://developer.android.com/reference/android/provider/OpenableColumns.html
- http://developer.android.com/reference/android/support/v4/content/FileProvider.html
我将计划在回答后发布我的代码,我只是想了解最佳实践,并可能做出贡献。谢谢
android - 非 Google 应用程序的文件共享失败
我使用FileProvider来分享我的应用程序的图像。虽然它非常适合通过 gmail、环聊、驱动器等进行文件共享,但我无法通过非 Google 应用程序共享文件,例如 WhatsApp、Viber。
Androidmanifest中的 FileProvider
文件路径.xml
共享文件的方法
android - 从内容 URI 中获取搜索图像的绝对文件路径
我正在尝试使用隐式意图ACTION_SEND将图像从其他应用程序共享到我的应用程序。
在从 chrome 浏览器共享搜索图像时,应用会收到带有如下内容 URI 的意图:
content://com.android.chrome.FileProvider/images/screenshot/1457448067808912906311.jpg
如何从这种类型的内容 URI 中获取文件路径?Facebook、Google+ 等所有其他应用程序都在这样做。我正在使用FileChooser获取其他类型的内容 URI 的文件路径(例如来自画廊)。
尝试到处寻找,没有太多帮助。有人可以建议如何使用这些内容 URI 吗?