首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android 7及更高版本中的“通过Intent.getData()暴露在应用程序之外”错误

在Android 7及更高版本中,通过Intent.getData()暴露在应用程序之外的错误是指应用程序在处理Intent时,可能会将敏感数据通过Intent.getData()方法暴露给其他应用程序,从而导致安全风险。这个错误可能会导致恶意应用程序获取到应用程序的敏感数据,进而进行非法操作或者泄露用户隐私。

为了解决这个问题,Android引入了StrictMode API,开发者可以使用StrictMode来检测并解决这类问题。具体来说,可以通过以下步骤来修复这个错误:

  1. 首先,需要在应用程序的AndroidManifest.xml文件中添加以下权限声明:<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />这个权限声明是为了确保应用程序有权限访问外部存储。
  2. 然后,在应用程序的代码中,需要使用StrictMode API来检测并解决潜在的问题。可以在应用程序的入口处(例如Application类的onCreate()方法)添加以下代码:if (BuildConfig.DEBUG) { StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); }这段代码会在调试模式下启用StrictMode,并设置一个VmPolicy,用于检测潜在的问题。

通过以上步骤,可以修复Android 7及更高版本中的“通过Intent.getData()暴露在应用程序之外”错误,从而提高应用程序的安全性。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动应用分析(MTA):提供移动应用数据分析服务,帮助开发者深入了解用户行为和应用性能。了解更多:腾讯云移动应用分析(MTA)
  • 腾讯云移动推送(TPNS):提供移动应用消息推送服务,帮助开发者实现消息推送功能。了解更多:腾讯云移动推送(TPNS)
  • 腾讯云移动直播(MLVB):提供移动直播解决方案,帮助开发者快速构建高质量的移动直播应用。了解更多:腾讯云移动直播(MLVB)
  • 腾讯云移动应用托管(TAPD):提供移动应用托管服务,帮助开发者轻松管理和部署移动应用。了解更多:腾讯云移动应用托管(TAPD)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android N 7.0报错:android.os.FileUriExposedException解决方法

appName-2.3.0.apk exposed beyond app through Intent.getData(),通过查找相关资料终于找到了解决方法,下面分享给大家,话不多说了,来一起看看详细介绍吧...解决方法 1、在AndroidManifest.xml添加如下代码 <provider android:name="android.support.v4.content.FileProvider"...:必须是false resource:@xml/file_paths是我们接下来要添加文件 2、在res目录下新建一个xml文件夹,并且新建一个file_pathsxml文件(如下图) ?...Intent intent = new Intent(Intent.ACTION_VIEW); //判断是否是AndroidN以及更高版本 if (Build.VERSION.SDK_INT = Build.VERSION_CODES.N...); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); } startActivity(intent); 1、首先我们对Android N以上做判断;

1.4K20

Android Studio 4.0新特性升级异常问题解决方案

Gradle构建优化 当将Android Studio 4.0与Android Gradle插件4.0.0更高版本一起使用时,“构建速度”窗口可用于帮助您了解和诊断构建过程问题,例如禁用优化和配置不正确任务...这意味着您现在可以在支持较旧版本Android应用程序包含仅在最近Android版本(例如java.util.streams)可用标准语言API。...,Android Gradle插件4.0.0-alpha01更高版本删除了功能插件(com.android.feature)和Instant App插件(com.android.instantapp)...通过迁移即时应用程序,您可以利用应用程序捆绑包好处并简化应用程序模块化设计。 10....Dependencies metadata 使用Android Gradle插件4.0.0更高版本构建应用时,该插件包含描述已编译到应用依赖项元数据。

3.7K21

Android7.0后FileProvider升级安装包导致FileUriExposedException异常

最近在鼓捣应用升级时遇到了安装失败问题,抛出了“apk exposed beyond app through Intent.getData()”异常,网上一顿谷歌百度后晓得了,是谷歌在Android7.0...external-cache-path> 表示应用程序内部SD卡存储目录下 cache/ 目录,共享完整路径为/storage/emulated/0/Android/data/com.bo.view...path 属性用于指定apk所在文件夹名,与步骤4设置对应,不要弄错了。 name 属性告诉 FileProvider 为共享路径创建一个别名为 apk 路径字段,可任意。...想要通过 FileProvider 为文件生成 content URI 只能在此处指定目录,除此之外还可以共享其它目录,其标签对应路径如下: ?...file_path.png 4.最后代码调用安装apk,此处要判断区分7.0以后和之前版本,因为Android7.0之前使用FileProvider这个方式也会异常。

2.4K31

Android Studio 4.0 稳定版发布了

1、构建分析器 当将 Android Studio 4.0 与 Android Gradle 插件 4.0.0 更高版本一起使用时,Build Analyzer 窗口可帮助你了解和诊断构建过程问题...通过一个称为 desugaring 过程,Android Studio 3.0 更高版本 DEX 编译器 D8 已经为Java 8 语言功能(例如lambda表达式,默认接口方法,尝试资源等)提供了实质性支持...这意味着你现在可以在 java.util.streams 支持较旧版本 Android 应用程序,包含仅在最新Android版本可用标准语言API 。...=true 更多可见:《Android Gradle 插件 4.0.0 Feature-on-Feature 依赖关系》 4、依赖元数据 使用 Android Gradle 插件 4.0.0 更高版本构建应用时...首先,与以前 Android Studio 版本相比,CPU Profiler CPU 记录错误率已大大降低。

4.6K20

Tomcat与JDK版本对应关系,Tomcat各版本特性

3.0 1.1 1.1 9.0.x 9.0.27 8更高版本 3.1 2.3 3.0 1.1 1.1 8.5.x 8.5.47 7更高版本 3.1 2.3 3.0 1.1 不适用 8.0.x(已取代...) 8.0.53(已取代) 7更高版本 3.0 2.2 2.2 1.1 不适用 7.0.x 7.0.96 6更高版本 (WebSocket为7更高版本) 2.5 2.1 2.1 不适用 不适用 6.0...Alpha / Beta / Stable Tomcat主要有三个版本,主要版本初始发行通常会从Alpha到Beta,再到Stable Alpha版本可能包含规范要求大量未经测试/缺少功能和/或重大错误...除此之外,它还包括以下改进: Web应用程序内存泄漏检测和预防 改善Manager和Host Manager应用程序安全性 通用CSRF保护 支持直接在Web应用程序包含外部内容 重构(连接器,生命周期...Tomcat 6.x用户应升级到Tomcat 7.x或更高版本

7.4K20

Android包管理机制(一)PackageInstaller初始化

通过adb命令安装:adb 命令包括adb push/installAPK安装方式主要有以下2种: 通过系统安装器packageinstaller进行安装:packageinstaller是系统内置应用程序...3.寻找PackageInstaller入口 在Android7.0之前我们可以通过如下代码安装指定路径APK。..."); context.startActivity(intent); 但是Android7.0或更高版本再这么做,就会报FileUriExposedException异常。...本文应用情景Android7.0以及更高版本我们会使用FileProvider来处理URI ,FileProvider会隐藏共享文件真实路径,将路径转换成content://Uri路径,这样就会跳转到...本文应用场景,如果是Android7.0以及更高版本会跳转到InstallStart。

1.2K30

2019上半年移动安全报告

在漏洞方面,根据android开发者平台,90%android设备使用android pie之前版本,而74%android甚至不运行oreo。...这可能会使手机暴露在严重漏洞,这些漏洞需要对系统进行体系结构更改。 恶意软件检测数量比2018年上半年下降了8%,比去年下半年下降了10%。...关于官方应用程序商店这种常见恶意软件传播现象,研究显示这些恶意应用程序在被淘汰之前平均可以下载51天。其中一些恶意应用程序甚至可以使用长达138天。...我们可以看到它们主要集中在中国(75%),印度(7%)和中国台湾(4%)。值得注意是印度在第一批位置出现,取代了中国香港位置。...除了安卓和ios威胁之外,我们不能忘记用户应用程序中发现漏洞可能与操作系统漏洞一样危险,例如最近发现WhatsApp缺陷允许在引用消息中进行更改。

81520

谷歌将彻底淘汰10年前发布Android版本

整理 | 孙胜 来自 | CSDN 谷歌近期刚刚发布完Android 12 beat 3,现在又宣布停止维护Android 2.3.7更低版本设备。...谷歌通过Android版本活跃用户数据分析得知,安装Gingerbread版本设备数量比例低于0.2%,远远落后于其他14个Android版本,所以谷歌决定在这个十年前发布移动操作系统棺材上钉上最后一颗钉子...全球移动和平板电脑 Android 版本市场份额 - 2021 年 7 月 官方Android官方论坛社区经理Zak Pollack宣称,谷歌不允许用户在安装Android 2.3.7更低版本设备上登录谷歌账户...由于在旧版本,许多应用程序和服务都与Google登录账号相关联,虽然Google应用程序可以通过Android Play更新,但是登录Google账号仍然是系统级服务,并且被及时冻结。...Gmail:转到mail.google.com 输入您用户名和密码 或是把设备更新到基于Android 3.0或者更高版本系统。

81810

Android应用实现安装后自启动方法

一个新版本应用安装到设备,替换之前已经存在版本 ACTION_PACKAGE_CHANGED 一个已存在应用程序包已经改变,包括包名 ACTION_PACKAGE_REMOVED 一个已存在应用程序包已经从设备上移除...Android 3.1 APIs 翻译: 在 系统设置 – 应用管理 “强制停止” 作用是让app处于(stopped)停止状态。 下面是google官方描述: 什么是停止状态?...从Andriod3.1开始,系统包管理服务会一直追踪处于停滞状态app,并提供了控制它们从后台进程或其他应用程序启动方法。 注意:应用程序停止状态不同于activity(活动)停止状态。...一个后台service服务或app应用程序可以 通过向广播Intent对象添加FLAG_INCLUDE_STOPPED_PACKAGES标志,覆盖重写这个行为,使得该广播可以激活处于停止状态应用程序...包名 Uri data = intent.getData(); String installedPkgName = data.getSchemeSpecificPart();//取得安装Apk

4.1K31

Android 样式和主题

当应用主题背景时,应用或Activity每个视图都会应用其支持每个主题背景属性。除了这些之外,主题还可以将样式应用于非视图元素,例如状态栏和标题栏。...如果希望子视图继承样式,应改为应用具有android:theme样式属性。 扩展和自定义样式 为保持与平台界面样式兼容性,应该始终通过扩展框架或支持库现有样式来创建自己样式。...同时为了更高版本兼容,建议使用支持库来实现,不要包含@android:style/部分,而改用AppCompat。...仅作用于 Lollipop 更高版本。 (2)colorButtonNormal:Button normal 状态下背景色。...添加特定于版本样式 由于android 手机碎片化,导致市面上各个版本系统手机都有可能存在,那么,如何在众多机型中去完美匹配呢?

99020

什么是 Vulkan

在老API(例如OpenGL)里,驱动程序会跟踪大量对象状态,自动管理内存和同步,以及在程序运行时检查错误。这对开发人员非常友好,但是在应用程序经过调试并且正确运行时,会消耗宝贵CPU性能。...独特跨 OS 支持 Vulkan™ 能够支持深入硬件底层控制,为 Windows® 7、Windows® 8.1、Windows® 10 和 Linux® 带来更快性能和更高影像质量。...现在,设计Vulkan应用游戏开发者可以在所有近期版本Windows和Linux系统利用这种独特硬件特性。...Vulkan 兼容平台 AMD Radeon Software Crimson 版 16.3 更新版本在 Windows® 7、Window® 8.1、Windows® 10 和 Linux® 中支持基于次世代图形核心架构以下...系列 OEM 系统显卡(HD 8570 更高级别) AMD Radeon™ HD 8000M 系列笔记本显卡 AMD Radeon™ HD 7000 系列显卡(HD 7730 更高级别) AMD

3.9K30

安卓用户隐私被PhoneSpy入侵、Palo Alto安全设备现零日漏洞|全球网络安全热点

通过利用默认安装在Android应用程序可访问性工具包,攻击者能够使用该应用程序实施Overlay攻击,以欺骗用户输入信用卡信息,以防止Netflix和Twitter上虚假帐户泄露。”...IDA Pro是一种将可执行文件转换为汇编语言应用程序,允许安全研究人员和程序员分析程序工作方式并发现潜在错误。安全研究人员通常使用IDA来分析合法软件漏洞和恶意软件。...11102117:28更新:Palo Alto已更新其公告,以澄清此错误不影响8.1.17之前PAN-OS8.1以外版本。...通过暴露在互联网上设备Shodan搜索,Randori最初认为“在面向互联网资产上暴露了70,000多个易受攻击实例”。...NCC Group研究人员正在追踪利用SolarWinds Serv-U远程代码执行漏洞(CVE-2021-35211)Clop勒索软件攻击上升趋势。该漏洞于7月由微软披露。

69120

Android 12行为变更和版本兼容思路

在手势导航模式下,行为如下: 在视觉上,它与Android 11更低版本沉浸模式相同。 从功能上讲,即使隐藏了栏,也允许使用手势。...对于在Android 11(API级别30)更低版本(针对Android 12)上运行应用: 除了BEHAVIOR_SHOW_BARS_BY_TOUCH 映射到之外,预期具有相同行为BEHAVIOR_SHOW_BARS_BY_SWIPE...通过这种方法,您可以在运行Android 5.0(API级别21)或更高版本(包括Android 12)和WebView 89.0.4385.0或更高版本任何设备上进行测试。...如果您测试或开发工作流程使用依赖于应用程序数据adb backup,您现在可以通过应用程序清单文件设置android:debuggable 来选择导出应用程序数据 true。...连接性 当针对Android 12更高版本设备在具有硬件支持设备上运行时,在创建与对等设备连接时,使用对等连接不会断开您现有的Wi-Fi连接。

4.4K10

如何设计一个牛逼API接口

如果接口保证不了安全性,那么你接口相当于直接暴露在公网环境任人蹂躏。...两者区别也很明显,GET请求会将参数暴露在浏览器URL,而且对长度也有限制。为了更高安全性,所有接口都采用POST方式请求。...第二次调用,查询redis,如果key存在,则证明是重复提交,直接返回错误。 三 数据规范问题 3.1 版本控制 一套成熟API文档,一旦发布是不允许随意修改接口。...除此之外,一个好API还少不了一个优秀接口文档。接口文档可读性非常重要,虽然很多程序员都不喜欢写文档,而且不喜欢别人不写文档。...为了不增加程序员压力,推荐使用swagger或其他接口管理工具,通过简单配置,就可以在开发测试接口连通性,上线后也可以生成离线文档用于管理API。

79520

如何设计一个牛逼API接口(技术创作101训练营)

一 安全性问题 安全性问题是一个接口必须要保证规范。如果接口保证不了安全性,那么你接口相当于直接暴露在公网环境任人蹂躏。...两者区别也很明显,GET请求会将参数暴露在浏览器URL,而且对长度也有限制。为了更高安全性,所有接口都采用POST方式请求。...第二次调用,查询redis,如果key存在,则证明是重复提交,直接返回错误。 三 数据规范问题 3.1 版本控制 一套成熟API文档,一旦发布是不允许随意修改接口。...除此之外,一个好API还少不了一个优秀接口文档。接口文档可读性非常重要,虽然很多程序员都不喜欢写文档,而且不喜欢别人不写文档。...为了不增加程序员压力,推荐使用swagger或其他接口管理工具,通过简单配置,就可以在开发测试接口连通性,上线后也可以生成离线文档用于管理API。

1.2K187170

Android 7.0 FileUriExposedException 处理

/storage/emulated/0/Android/data/com.skyrin.bingo/cache/app/app.apk exposed beyond app through Intent.getData...这个问题是由于 Android 7.0 权限更改导致,确切讲是 Android 对权限进一步管理,从 Android 6.0 动态权限申请到这个问题可以看出 Google 也是越来越重视 Android...解决问题 官方给出解决方式是通过 FileProvider 来为所共享文件 Uri 添加临时权限,详细请看这里 在 标签下添加 FileProvider 节点 表示应用程序内部存储目录下 cache/ 目录,完整路径为 Android/data/com.xxx.xxx...想要通过 FileProvider 为文件生成 content URI 只能在此处指定目录,以上示例就表示我将要共享 Android/data/com.xxx.xxx/cache/app/ 这个目录,除此之外还可以共享其它目录

72620

默认情况下 80% Android 应用正在使用加密流量

而对于直接针对 Android 9 应用,该数字甚至更高,达到 90%。这意味着进入或离开这些应用程序之一流量是经过加密,第三方无法拦截或读取。...据悉,自 2017 年以来,谷歌一直在推动 Android 开发人员将加密流量集成到其应用程序,以便在应用程序通过Internet或网络进行通信时提供更好安全性和隐私性。...在 2018 年发布 Android 9 ,Google 进一步采取了措施,使所有以 Android 9 或更高版本为目标的应用程序都将自动使用默认策略,以阻止应用程序使用未加密流量。...除了 Android 应用程序制造商之外,Google 还成功地推动了网站采用 HTTPS 代替易受攻击 HTTP 协议。...例如,现在 Android Chrome 内加载所有网站,有 89% 是通过 HTTPS 加载。在 Windows 版 Chrome 上,这个数字是 84%。

37520

Android SDK 开发(第一部分)

SDK 功能模块具体实现则是 Library 主要职责。各模块之间通信以及 SDK 所能提供服务则通过 API 体现出来。...而自 Android 6.0 开始则使用了全新权限控制系统,除了以上权限控制机制之外,还会在应用程序访问特定系统功能时(比如使用蓝牙模块),也会通过弹出窗口形式进行通知。...相对应,在 SDK 开发过程,我们应该为 Android 6.0 以上版本单独做权限方面的适配工作。 那么,作为第三方服务 SDK 一定要遵循一个原则就是:最小权限原则。...实际上,在经历了多次错误决策之后才可能接近正确决策。 这正是 API 设计迭代意义。...API 一旦对外发布,其内部实现以及方法签名原则上处于不可变更状态: 如果需要修改 API 内部实现,在保证方法签名不变情况下,API 必须通过测试用例边界功能测试,并尽可能给出原 API 实现备份

1.1K21
领券