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

Android11 (API30)适配

查询文件 通过ContentResolver,根据不同的Uri查询不同的内容: 1.3.2.1.5.读取文件 通过ContentResolver query接口,查找出来文件后如何读取,可以通过下面的方式...FD 1.3.2.1.6.新建文件 如果需要新建文件存放到公共目录,需要通过ContentResolver insert接口,使用不同的Uri,选择存储到不同的目录。...在一些情况下使用,例如在下载的时候:下载中,文件是Pending状态→下载完成,文件Pending状态置为0。 1.3.5....内部存储根目录 2 访问文件 您无法再使用 ACTION_OPEN_DOCUMENT_TREE 或 ACTION_OPEN_DOCUMENT操作来请求用户以下目录中选择单独的文件: Android/data...上述列出了 Android 10(API 级别 29)中列入灰名单而目前在 Android 11 中受限的所有非 SDK 接口

7.4K11

Android 11 应用兼容性适配,看这篇就够了

查询文件 通过ContentResolver,根据不同的Uri查询不同的内容: 1.3.2.1.5.读取文件 通过ContentResolver query接口,查找出来文件后如何读取,可以通过下面的方式...FD 1.3.2.1.6.新建文件 如果需要新建文件存放到公共目录,需要通过ContentResolver insert接口,使用不同的Uri,选择存储到不同的目录。...在一些情况下使用,例如在下载的时候:下载中,文件是Pending状态→下载完成,文件Pending状态置为0。 1.3.5....内部存储根目录 2 访问文件 您无法再使用 ACTION_OPEN_DOCUMENT_TREE 或 ACTION_OPEN_DOCUMENT操作来请求用户以下目录中选择单独的文件: Android...上述列出了 Android 10(API 级别 29)中列入灰名单而目前在 Android 11 中受限的所有非 SDK 接口

11.6K42
您找到你想要的搜索结果了吗?
是的
没有找到

Android 10适配要点,作用域存储

Android 10开始,每个应用程序只能有权在自己的外置存储空间关联目录下读取和创建文件,获取该关联目录的代码是:context.getExternalFilesDir()。...如果你的项目指定的targetSdkVersion低于29,那么即使不做任何作用域存储方面的适配,你的项目也可以成功运行到Android 10手机上。...而如果你的targetSdkVersion已经指定成了29,也没有关系,假如你还不想进行作用域存储的适配,只需要在AndroidManifest.xml中加入如下配置即可: <manifest ......好了,这样我们就将相册图片的读取和存储问题都解决了,下面我们来探讨另外一个常见的需求,如何将文件下载到Download目录。...而Android 10开始,我们已经不能以绝对路径的方式访问外置存储空间了,所以文件下载功能也会受到影响。 那么该如何解决呢?主要有以下两种方式。

2.1K10

通过Java WebService接口服务端下载文件「建议收藏」

一、 前言 本文讲述如何通过webservice接口服务器下载文件到客户端。...3.2 定义restful的WebService接口,用于下载文件。 /** * 下载报告文件WebService接口, 对于大于20M的文件分多次传输。...return "filePath: " + filePath + "\n" + "start: " + String.valueOf(start); } } 3.3.2 返回值类型定义 /** * 文件下载接口返回值类型...4.2 调用接口下载文件,文件字节流写入目标文件保存。...实际应用时,客户端可以指定一个服务端上的文件路径下载。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

1K30

详解Android10的分区存储机制(Scoped Storage)适配教程

以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储设备的分区访问权限(即分区存储), 对外部存储文件访问方式重新设计,便于用户更好的管理外部存储文件。...具体分区存储权限的介绍 默认情况下,对于targetSdkVersion大于等于29的应用,其访问权限范围限定为分区存储。...分区存储将影响在Android10系统首次安装启动、且targetSdkVersion =29的应用。需要访问和共享外部存储文件的应用会受到影响,需要进行兼容性适配。...= 29 下面是关于分区存储权限和其他相关项目的表格。...// 把图片下载到共有媒体集合中,并在相册中显示 // 创建ContentValues, 并加入信息 val values = ContentValues() values.put(MediaStore.Images.Media.DESCRIPTION

3.1K32

相册适配 Android 11 绕的那些弯路

通过翻查官方文档,大概知道了这个属性的意思:在配置targetSdk >= 29,应用搭载在Android 10及以上版本的手机运行时,可以暂时停用「分区存储」 1.「分区存储」又是什么?...分区存储 为了让用户更好地管理自己的文件并减少混乱,以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储空间的分区访问权限(即分区存储)。...为了让用户更好地管理自己的文件并减少混乱,以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被授予了对外部存储空间的分区访问权限(即分区存储)。...但是,最终还是成功在 targetSdk=29 Android 10 的手机上成功显示出了缩略图。 3....Uri Native 层貌似无法打开(没再细查有没有办法 2、传 fd 到 Native 层,可能会涉及 java 层 fd 被 Native 引用,然后无法释放的问题,如果要释放还需要开放释放 fd 的接口

1.6K30

Android 10(Q)11(R) 分区存储适配

受影响的接口: ? 访问不同分区的方式: 私有目录:和以前的版本一致,可通过 File() API 访问,无需申请权限。...适配和兼容 在 targetSDK = 29 APP 中,在 AndroidManifes 设置 requestLegacyExternalStorage="true" 启用兼容模式,以传统分区模式运行...总结 Android 10提出分区存储之后到现在已经一年多了,所以Google 强制推行的态度到现在 targetSDK >=30 才强制启用分区存储来看,Google 还是渐渐地选择给开发者留更多的时间...关于适配的难度: 对绝对路径相关接口依赖比较深的 APP 适配还是改动挺多的;其次权限的划分很细,什么时候需要什么权限以及调用哪个接口,理解起来需要一定时间; MediaStore API SAF API...这类接口以前就设计好了,我也觉得也不算特别友好;最后测试也需要重新进行。

2.2K30

AndroidQ兼容性适配指南

fullScreenPendingIntent, true); Notification incomingCallNotification = notificationBuilder.build(); 注意:在Target SDk为29...App-specific目录 接口(所有存储设备) 接口(Primary External Storage) Media getExternalMediaDirs() NA Obb getObbDirs...注意:MediaStore接口中查询到的DATA字段将在Android Q开始废弃,不应该利用它来访问文件或者判断文件是否存在; MediaStore接口或者SAF获取到文件Uri后,请利用Uri打开...解决方案2: MediaStore接口获取公共目录多媒体文件Uri后,打开OutputStream或FD时,注意catch RecoverableSecurityException,然后向用户申请该多媒体文件的删改权限...,查询不到设置IS_PENDIN的文件,可以用来下载,或者生产截图等等。

6.9K30

干货 | 携程Android 10适配踩坑指南

背景 目前携程旅行线上最新版本已适配到Android 10(API =29),由于API=26升级到API=29,跨度较大,我们提前对相关适配进行了调研,希望其中一些经验能对其他开发者有一定的帮助。...以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储设备的分区访问权限(即分区存储), 对外部存储文件访问方式重新设计,便于用户更好的管理外部存储文件。...,未申请存储权限,通过ContentResolver查询不到文件Uri,即使通过其他方式获取到文件Uri,读取或创建文件会抛出异常; MediaStore API不能够访问其他应用创建的非媒体文件(pdf...2.3.3 File Path路径访问受影响接口 开启分区存储新特性, Andrioid 10不能够通过File Path路径直接访问共享目录下资源,以下接口通过File 路径操作文件资源,功能会受到影响...2.5.2 适配指导 AndroidQ中使用ContentResolver进行文件的增删改查。

3.2K77

APT29以“选举欺诈”为主题的网络钓鱼活动分析

恶意软件利用的加密例程 然后该示例将时间戳上传到 Firebase并从 Firebase 存储下载 blob。此数据使用生成的密钥进行 base64 解码和解密。...然后,数据在单独的线程中执行,并向用于下载有效负载的 Firebase 存储地址发送 HTTP DELETE 请求。 ? 图 6....Firebase URL 捕获加密的payloads,目前正在对其进行分析。...但是,许多攻击属性与 APT29 之前使用的策略一致: 使用包含 LNK的存档文件格式来交付初始有效载荷 (2018) 使用伪造的美国政府来源地址发送的以美国选举为主题的诱饵文件(2016 年) 将CobaltStrike...基础设施的角度来看,所使用的域与 Volexity 报告的 Dark Halo 活动有些相似。

1.3K30

Android Firebase 服务简介

早在2014年,谷歌收购了Firebase,这主要是一种面向应用程序开发人员的数据库。Firebase基本上向广大的应用程序开发人员提供不同的服务,比如存储、消息传递、通知和身份验证等服务。...存储Firebase Storage) Firebase Storage 由 Google Cloud Storage 提供支持,Firebase 应用提供安全的文件上传与下载。...可以使用它存储图片、音频、视频或其他用户生成的内容。 托管(Firebase Hosting) 为开发者提供的生产级网络内容托管。...利用 Hosting,仅需一条命令,即可快速简单地将网络应用和静态内容部署到全球内容交付网络 远程配置(Firebase Remote Config) 可以通过该服务更改应用的外观和行为,无需用户下载应用更新...如果当用户搜索相关内容时已安装应用,则他们可以直接搜索结果中启动应用。 如果用户还未安装应用,则将在搜索结果中显示安装卡片。

22K90

AndroidQ(10)分区存储完美适配方法

本篇主要是对AndroidQ(10)分区存储适配具体实现 要点: Android Q文件存储机制修改成了沙盒模式 APP只能访问自己目录下的文件和公共媒体文件 对于AndroidQ以下,还是使用老的文件存储方式...作为存储相关运行时权限,但现在即使获取了这些权限,访问外部存储也受到了限制,只能访问自身目录下的文件和公共内体文件。...适配指导 AndroidQ中使用ContentResolver进行文件的增删改查 1、获取(创建)自身目录下的文件夹 获取及创建,如果手机中没有对应的文件夹,则系统会自动生成 //在自身目录下创建...apk文件夹 File apkFile = context.getExternalFilesDir("apk"); 2、创建自身目录下的文件 生成需要下载的路径,通过输入输出流读取写入 String..., "application/vnd.android.package-archive"); //注意MediaStore.Downloads.RELATIVE_PATH需要targetVersion=29

1.4K40

Android 10 和Android 11的适配

一、 私有目录下资源访问 存在这样一个场景:我们要分享一张图片到qq或者微信,首先第一步是要是得到这个bitmap(通过本地生成或者网络加载),然后存储到本地sd卡上,最后把存储的图片的绝对路径传给qq...这是因为,我们被存储分区限制了,不能直接访问外部目录。...close() } return false } 经过测试,在29的下和29 的设备下,分享qq、微信都成功了。...分区之前是存储在外部sd卡,都没有问题。 分区后,qq或微信没法访问的我们的私有目录App-specific。...终极适配方案 在Android10上 开启标志位 :android:requestLegacyExternalStorage="true"来开启兼容模式,关闭分区适配,相当于targetSdkVersion=29

1.3K41

我们弃用 Firebase

的确,纯性能上讲,在 AWS/Azure/ GCP 上构建的定制化原生服务包优于 Firebase 套件。但是,当我们考虑到开发时间和维护成本时,Firebase 通常是一个合乎逻辑的选择。...实际上,我们发现,在 CI/CD 方面,Firebase Hosting 比 AWS S3 + Cloudfront 更简单,因为它提供了一个简单的命令可以对存储库做这方面的设置。...文件 下面这几行代码会下载一个 Firebase Web 片段,并将其转换为适合.env 文件的内容。...我还注意到,无法在 Firebase Storage 仪表板上下载文件了;必须导航到单独的 GCP 平台。 我无法在 Firebase 仪表板上下载这个文件。...这不符合直觉,“打开”竟然不让我下载。 直接 Google Cloud Console 下载。 GCP 似乎正在蚕食 Firebase 开发环境。 运营的角度来看,这是合理的。

32.5K30

错误配置 Firebase 数据库导致 3000 多应用数据泄露

也是最受欢迎的移动应用程序数据存储平台之一。 在查看超过 270 万移动应用程序后的 Appthority 中,发现 28,000 个移动应用程序将数据存储Firebase 的后端。...其中,3,046 个程序将 2,271 个数据错误地配置为 Firebase 数据库,同时允许第三方公开查看。...Facebook / LinkedIn / Firebase 用户凭证为 450 万笔。...Appthority 指出,2,446 个 Android 程序在 Google Play 上的下载量超过 6.2 亿次。 它们分布在不同的类别中,工具,生产力,健身,通信,财务和业务应用程序。...虽然这主要是因为开发者没有验证访问权限,以至于任何人都可以访问属于 Firebase 数据库的配置故障,但 Appthority 正在指向 Google,认为 Firebase 未在默认情况下保护好用户数据

4.5K20

Android基础总结(6)——内容提供器

前面学习的数据持久化技术包括文件存储、SharedPreferences存储以及数据库存储技术保存的数据都只能被当前应用程序所访问。...虽然文件存储和SharedPreferences存储中提供了MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE这两种操作模式,可以实现不同应用程序间的数据共享,但是这两种模式在...不同于文件存储和SharedPreferences存储中的两种全局可读写操作模式,内容提供器可以选择只对一部分数据进行共享,从而保证我们程序中的隐私数据不被泄露。...1、内容提供器的用法   内容提供器的用法一般有两种: 使用现有的内容提供器来读取和操作相应程序中的数据 创建自己的内容提供器给我们的程序的数据提供外部的接口 2、访问其他程序中的数据   当一个应用程序通过内容提供器对其数据提供了外部访问接口...实现delete()方法   不要使用delete()方法你的数据存储中物理的删除行。因为如果你的提供器使用了同步适配器,你就应该使用“delete”标识来标记要删除的行,而不是把完全的删除行。

1.2K90

安卓开发之数据共享

当我们需要把应用程序的数据共享给其他应用程序(当然有的可能会混淆SharedPreferences)这个时候需要用到安卓开发中另外的一个组件(ContentProvider),这样的组件是不论程序是否启动,其他应用程序都可以通过该接口操作应用程序内部数据...而SharePreferences需要授权才能读写 二、配合组件ContentResolver ContentProvider提供了接口可以访问或者修改数据,而其他应用可以使用ContentResolver.../study.provider/book(这里的book是请求对象是可以改变的,content是固定格式,中间部分是那个注册ContentProvider时候的那个authority属性值) 2、使用ContentResolver...2.1常见方法 getContentResolver()、insert()、delete()、update()、query()等 步骤:调用Activity的getContentResolver方法获取ContentResolver...管理联系人 MediaStore.Audio.Media.INTERNAL_CONTENT_URI手机内音频文件 MediaStore.Images.Media.EXTERNAL_CONTENT_URI存储

1.5K60

扩大Android攻击面:React Native Android应用程序分析

React Native APK获取JavaSript 在这个例子中,我们将从下面这个React Native应用程序中提取出JavaScript代码: com.react_native_examples...:【点我获取】 下载了上面这个APK文件之后,使用下列命令将其提取至一个新的文件夹中: unzip React\ Native\ Examples_v1.0_apkpure.com.apk -d ReactNative...为了index.android.bundle中提取Firebase API密钥,我们需要提取出下列字符串: FIREBASE_API_KEY FIREBASE_AUTH_DOMAIN FIREBASE_DB_URL...在我们需要逆向分析的React Native应用程序中,我们通过在Chrome中浏览提取到的JavaScript文件,我们能够找到大量的API节点: Firebase接口分析 下面的Python脚本可以用来跟...} firebase = pyrebase.initialize_app(config) db = firebase.database() print(db.get()) 上述脚本将会针对给定的Firebase

9.7K30

安卓四大组件之ContentProvider-内容提供者

ContentProvider是应用程序之间共享数据的接口,使用的时候首先自定义一个类继承ContentProvider,然后重写query\insert\update\delete等的方法。...2、安卓中数据存储的方式 文件存储、sp存储、ContentProvider存储、SQLiteDataBase存储、网络存储 3、为什么要用ContentProvider?...contentProvider屏蔽了数据存储的细节,用户只需要关心操作数据的URI就可以了,ContentProvider可以实现不同APP之间的共享。...4、说说ContentProvider、ContentResolver、ContentObserver之间的关系 a.ContentProvider内容提供者,用于对外提供数据 b.ContentResolver.notifyChange...(uri)发出信息 c.ContentResolver内存解析者,用于获取内容提供者提供的数据 d.ContentObserver内容观察者,可以监听数据的改变状态 e.ContentResolver.registerContentObserver

60330
领券