通过 Intent 共享照片时 EXIF 位置数据被删除

2023-12-02

我最近将我的应用程序切换到范围存储。但是,我注意到,当我从应用程序内共享图像(通过 Intent)时,GPS 位置数据将从图像的 Exif 元数据中删除。我知道范围存储对访问图像的 Exif 位置数据有一些限制,并且我知道该权限<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />,但是添加此权限在共享图像时似乎没有任何效果。知道如何通过 Intent 共享图像,同时保留图像 Exif 数据中的位置数据吗?

这是我的代码:

 val imageUri = mediaList[photo_view_pager.currentItem].uri

 val intent = Intent().apply {
     val mediaType = MimeTypeMap.getSingleton()
        .getMimeTypeFromExtension("jpg")
     putExtra(Intent.EXTRA_STREAM, imageUri)
     type = mediaType
     action = Intent.ACTION_SEND
     flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
 }

 startActivity(Intent.createChooser(intent, getString(R.string.share_hint)))

预先非常感谢您的帮助!


我在 Android 11 上的体验。

也必须在运行时请求 ACCESS_MEDIA_LOCATION。

服务应用程序应具有“所有文件访问权限”,以便接收应用程序从 exif 读取经纬度。

如果服务应用程序具有所有文件访问权限,则不需要 MediaStore.setRequireOriginal 从文件中读取经纬度本身。

(我从未使用过 MediaStore.setRequireOriginal 但现在会进行调查)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Intent 共享照片时 EXIF 位置数据被删除 的相关文章

  • 使用匕首柄作为依赖注入来处理多个改造客户端?

    我想在我的 android 应用程序中使用两个不同的后端 具有不同的响应格式 我使用 hilt 作为依赖注入 并对网络调用进行改造 这非常适合工作 因为我已经添加了第二个服务器网络文件和应用程序模块 所以它给了我错误 该错误列在最后 我需要
  • 如何在Android上获取当前播放曲目的路径[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想编写一个应用程序将当前播放的音乐流式传输到另一台设备 两个设备之间的连接确实有效 我还可以通过 wifi 传输一些字符串 但在获取
  • 服务如何在后台运行 - Android

    今天的采访中我被问到了这个问题 什么是服务 我对此的回答是 Service 是 Android 的基本组件 它没有 UI 并且在后台运行 Service 是否在主线程上运行 不 那么它是如何在后台运行的呢 我心里一片空白 有人可以解释一下如
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • 如何以编程方式判断蓝牙设备是否已连接?

    我了解如何获取已配对设备的列表 但如何判断它们是否已连接 这一定是可能的 因为我看到它们列在我手机的蓝牙设备列表中 并且它说明了它们的连接状态 将蓝牙权限添加到您的AndroidManifest中
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • ndk-build error.opencv2/core/core.hpp:没有这样的文件或目录

    我在 Android 中使用 OpenCV Nonfree 模块时遇到问题 我读了这个教程https sites google com site wghsite technical notes sift surf opencv androi
  • 新安装的Eclipse和Android SDK。无法让模拟器工作。挂在时钟屏幕上

    我对开发是全新的 我已经安装了 Eclipse 和 Andoid SDK 但是 我无法让模拟器工作 我已经尝试过示例记事本代码和 Hello Android 教程代码 每次我尝试运行任一应用程序时 它都会挂在时钟屏幕上 屏幕上还显示正在充电
  • Android 在 Windowmanager 中调整视图大小

    这是我的代码 menubuttonClosed li inflate R layout menu button null menubutton ImageButton menubuttonClosed findViewById R id m
  • Android Studio APK META-INF/BCKEY.DSA 中复制的重复文件

    我的代码构建得很好 但是当我尝试在调试中运行它时 出现以下错误 Error Execution failed for task app transformResourcesWithMergeJavaResForDebug com andro
  • 使用 START_STICKY 启动时服务进程被终止后的 onStartCommand

    我一直在阅读 Android 文档 我想知道是否有人可以阐明当以 START STICKY 启动的服务的进程被终止时服务实例会发生什么情况 我假设本地状态数据 实例变量 也丢失了 Android 在重新创建服务时是否会采取任何措施来帮助重新
  • 在 Android 中使用 AES 加密的最佳实践是什么?

    我为什么问这个问题 我知道人们对 AES 加密存在很多疑问 即使对于 Android 也是如此 如果您在网络上搜索 会发现很多代码片段 但在每个页面上 在每个 Stack Overflow 问题中 我都发现了另一个具有重大差异的实现 所以我
  • 旋转 Google 地图中的两层标记图标

    在我的应用程序中 我向地图添加了一定数量的标记 如下所示 private fun addMarker googleMap GoogleMap location Location val options MarkerOptions optio
  • foo.setVisibility(View.GONE) 和parent.removeView(foo) 之间的区别

    如果 foo 是一个视图 那么有什么区别foo setVisibility View GONE and fooParent removeView foo 我对两个语句之前和之后视图的内存消耗特别感兴趣 可见性设置为 GONE 的视图是否会消
  • 如何在Room的数据库迁移中正确添加索引?

    我在迁移 Room 数据库时遇到问题 在更新的数据库中 我必须将一个字段从整数更改为双精度值 我读到它并不像听起来那么容易 为了做到这一点 我必须使用这个更改后的属性创建新的临时表 复制前一个表中的所有值 删除旧的值 最后重命名临时表 我的
  • 使用 Box2d(适用于 Android)进行碰撞检测?

    有人可以解释一下使用 box2d for android 进行碰撞检测的工作原理吗 我无法理解 BBContactListener 以什么方式工作 BBContactListener listener new BBContactListen
  • Android - 检测视图上的双击和三次点击

    我一直在尝试构建一个可以检测双敲击和三敲击的敲击检测器 在我的努力失败后 我在网上搜索了很长时间以找到可以使用的东西 但没有运气 奇怪的是 像这样的图书馆如此稀缺 有什么帮助吗 你可以尝试这样的事情 尽管我通常建议不要使用三次点击作为一种模
  • JavaScript 点击事件在 Android 4.0.4 默认浏览器上的 Samsung Galaxy SIII 上不起作用

    我在 Android 4 0 4 上使用 Samsung Galaxy SIII 的默认浏览器时遇到了最奇怪的问题 对于以下页面 单击链接将不会触发 JavaScript 处理程序 从其中一个 div 的内容中删除单个 a 字母使它们再次工
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • 片段中的 SavedInstanceState 始终为 null

    我使用 XML 以及活动中的 setContentView 将片段附加到活动 A 有一个问题 因为我的片段中有非常动态的视图 所以当方向改变时 我必须恢复所有的观点状态 我有问题 因为我正在使用类似的东西 public void onSav

随机推荐

  • xcodebuild 如何使用命令行签署应用程序?

    我正在尝试使用命令行导出 ipa 但我无法在 Xcode 中执行此操作 因为该应用程序是为客户制作的 而我不是他的团队的成员 我真的希望 Apple 改变这一点并使其像Xcode 5 无论如何 我做了更多研究并尝试了这个命令 xcodebu
  • 复选框仅在子节点中?

    我有许多按类别分组的项目 节点 我想将它们显示在TreeView其中父级是文本 子级是CheckBoxes CategoryA Text A1 CheckBox A2 CheckBox CategoryB Text B1 B2 B3 Cat
  • jqGrid colmodel 在 loadComplete 中的更改

    经过 3 个小时的谷歌搜索后 我请求你的帮助 我的页面上有一个 jqGrid grid 的重要选项 listU05 jqGrid url u05json json datatype json mtype POST colModel name
  • Objective C 使用 JNI 调用 Java 方法

    有人可以告诉我如何从 Objective C 调用 Java 方法吗 更详细地说 这实际上是我想做的 1 首先从java端调用目标C 在此调用期间我想获得对java对象的引用 2 稍后我希望 Objective C 使用上一步中获得的引用来
  • Ember 1.10 中的助手损坏

    我正在使用自定义 Handlebars 助手来扩展 if 块的功能 在 Ember 1 10 中 这不再起作用 因为没有允许绑定到该属性的 Ember Handlebars bind 属性 Ember Handlebars register
  • 如何为给定数组创建跨度列表

    假设我有一个看起来像这样的对象 var users user1 user2 对于这个对象 我想创建一个像这样的跨度列表 span user1 span span user2 span 我确实尝试了以下代码 span span text us
  • java 使用比较器和交换函数进行排序

    我需要使用自定义比较器和交换功能进行排序功能 我自己可以写一个 但我想知道是否其他人还没有这样做 Java运行时包含许多专门的排序函数 用于对基本类型 对象等数组进行排序 但它们都不以交换函数作为参数 谷歌搜索也没有找到任何有用的东西 pu
  • Sphinx 自动摘要生成的表中的自动换行

    我使用 Sphinx 为我的项目生成文档 扩展名为autosummary 它生成一个表 其中包含我的模块名称及其摘要 这是结果的图像 然而 行太长 我们必须使用滑块来阅读整个描述 我想将描述文本换行 以摆脱滑块 我到处寻找 却一无所获 我尝
  • AdvertisingIdClient.getAdvertisingIdInfo(context) 正在抛出 NoClassDefFoundError

    我正在尝试使用 AdvertisingIdClient 获取我的 AIR 应用程序的广告 ID 所以我确实喜欢AdvertisingIdClient Info adInfo AdvertisingIdClient getAdvertisin
  • 为什么使用 React Hook 表单时表单测试失败?

    我正在使用react hook form来构建一个表单 该表格运行良好 但测试未通过 当我不使用时测试通过react hook form然后直接提交
  • Hibernate批处理有什么用

    我是休眠新手 我对休眠批处理有疑问 我读了一些他们说的休眠批处理教程 Session session SessionFactory openSession Transaction tx session beginTransaction fo
  • Opera 的 DragonFly 和 Extensions 还会存在于 Webkit 世界中吗?

    我刚刚看到 Opera 将停止使用 Presto 并切换到 WebKit 那么 DragonFly 是否仍然存在 或者将被 Chrome Inspector 取代 扩展也怎么样 是的 蜻蜓歌剧院仍然存在 Opera 15 当前的测试版包括
  • 在 JavaScript 中将多个分号替换为单个分号

    我尝试在 javascript 中删除多个分号 替换为单个分号 code var test test1 test2 test3 test4 test5 test6 test7 test8 test9 test replace 但没有得到正确
  • 使用 RODBC 包将数据框导出到 SQL Server

    我在用RODBCR 中的包用于从 SQL Server 数据库导入 导出数据帧 虽然导入没有问题 我不知道如何将数据框的内容导出到现有的 SQL 表中 我正在尝试使用sqlQuery 包中提供了函数 但我不知道如何在表中插入多条记录 有关如
  • 缺少更新 GCloud 上静态 ReactJS 站点的步骤

    人们可能会认为简单地替换与应用程序关联的存储桶中的内容就会更新应用程序 但事实并非如此 I have a site that I deployed yesterday I created the bucket then in the com
  • 有没有办法检查 int 是否是 C# 中的合法枚举?

    我读过一些 SO 帖子 似乎缺少最基本的操作 public enum LoggingLevel Off 0 Error 1 Warning 2 Info 3 Debug 4 Trace 5 if s LogLevel log LogLeve
  • 如何让 Chrome 使用范围 http 标头在音频中进行搜索?

    尽管 可查找 数量声称为 100 但看起来 Chrome 在清理超过缓冲 加载持续时间时会从文件开头开始下载 我放置了一个演示页面 硬编码为存储在 s3 上的 59 分钟音频文件 但在其他方面与 jPlayer 演示相同 http beta
  • 文档在 NuGet 包中消失

    我用 C 编写了一个类库 需要将其推送到私有 NuGet 服务器 v3 4 1 0 我用 XML 文档注释装饰了我的类和方法 XML 文档文件选项被选中Build在项目属性面板的选项卡中 项目构建成功 并在项目的根文件夹中生成与程序集同名的
  • Python:可视化数据直方图上的正态曲线

    预先感谢您的任何帮助或提示 我正在尝试可视化我的数据框列之一的拟合法线 到目前为止 我已经能够通过以下方式绘制直方图 df radon adj hist bins 30 我有这个 template 但我遇到了错误 import pylab
  • 通过 Intent 共享照片时 EXIF 位置数据被删除

    我最近将我的应用程序切换到范围存储 但是 我注意到 当我从应用程序内共享图像 通过 Intent 时 GPS 位置数据将从图像的 Exif 元数据中删除 我知道范围存储对访问图像的 Exif 位置数据有一些限制 并且我知道该权限