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

我不能在android 10+上保存图片,但我已经保存在android 9或更低版本上了

问题:我不能在Android 10+上保存图片,但我已经保存在Android 9或更低版本上了。

回答: 这个问题可能是由于Android 10+引入了一些新的权限限制和安全机制导致的。在Android 10及更高版本中,应用程序需要明确请求并获得适当的权限才能访问外部存储空间。

解决这个问题的方法是确保你的应用程序在AndroidManifest.xml文件中声明了适当的权限,并且在运行时请求用户授予这些权限。以下是一些与保存图片相关的权限:

  1. READ_EXTERNAL_STORAGE:读取外部存储空间的权限。
  2. WRITE_EXTERNAL_STORAGE:写入外部存储空间的权限。

在Android 10及更高版本中,你还需要使用新的存储访问框架来访问外部存储空间。你可以使用以下代码示例来保存图片:

代码语言:txt
复制
// 检查是否已经获得了适当的权限
if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE)
        != PackageManager.PERMISSION_GRANTED) {
    // 请求权限
    ActivityCompat.requestPermissions(activity,
            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
            REQUEST_CODE);
} else {
    // 已经获得了权限,保存图片
    saveImage();
}

// 处理权限请求的回调
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == REQUEST_CODE) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // 用户授予了权限,保存图片
            saveImage();
        } else {
            // 用户拒绝了权限请求,给出相应的提示
            Toast.makeText(context, "需要授予保存图片的权限", Toast.LENGTH_SHORT).show();
        }
    }
}

// 保存图片
private void saveImage() {
    // 在这里执行保存图片的逻辑
    // 例如,使用Bitmap.compress()方法将Bitmap保存到外部存储空间
}

此外,还可以考虑使用一些第三方库来简化图片保存的过程,例如Glide、Picasso等。

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

  • 腾讯云对象存储(COS):提供可扩展的云端存储服务,适用于图片、视频、音频等多媒体文件的存储和管理。详情请参考:腾讯云对象存储(COS)
  • 腾讯云移动推送(TPNS):提供高效、稳定的移动设备消息推送服务,可用于向Android和iOS设备发送通知消息。详情请参考:腾讯云移动推送(TPNS)
  • 腾讯云移动直播(LVB):提供高清、低延迟的移动直播服务,适用于实时音视频直播场景。详情请参考:腾讯云移动直播(LVB)
  • 腾讯云人工智能(AI):提供丰富的人工智能服务和工具,包括图像识别、语音识别、自然语言处理等。详情请参考:腾讯云人工智能(AI)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 存储空间的最佳实践

Android 10 运行 如果您的应用目标 API 为 Android 10 (API level 29),请停用分区存储并继续使用 Android 9更低版本所使用的方法来执行这类操作。...在 Android 9更低版本运行 使用以下方法: 使用 "请求应用权限" 一文中描述的最佳实践来请求 WRITE_EXTERNAL_STORAGE 权限。...在 Android 10 运行 如果您的应用目标 API 为 Android 10 (API level 29),请停用分区存储并继续使用 Android 9更低版本所使用的方法来执行这类操作。...在 Android 9更低版本运行 使用以下方法:  使用 "请求应用权限" 一文中描述的最佳实践来请求 WRITE_EXTERNAL_STORAGE 权限。...在您的应用完全兼容分区存储之前,您可以通过以下方法之一停用分区存储: 目标平台设置为 Android 9 (API level 28) 更低

1.6K10

Android常见面试题

栈是限定只能在表的一端进行插入和删除操作的线性表。 队列是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。...singleTop 模式 如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity...一旦该模式的Activity实例已经存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例( 会调用实例的 onNewIntent() )。...-TextView的结构中,TextView返回了true,它将被保存在ViewGroup1中,而ViewGroup1也会返回true,被保存在ViewGroup0中。...(3)不用的图片记得调用图片的recycle()方法 25、HybridApp WebView和JS交互 Android与JS通过WebView互相调用方法,实际是: Android去调用JS的代码

1.2K10
  • Android面试题含答案「建议收藏」

    singleTop 模式 如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity...一旦该模式的Activity实例已经存在于某个栈中,任何应用再激活该Activity时都会重用该栈中的实例( 会调用实例的 onNewIntent() )。...-TextView的结构中,TextView返回了true,它将被保存在ViewGroup1中,而ViewGroup1也会返回true,被保存在ViewGroup0中。...不用的图片记得调用图片的recycle()方法 25、HybridApp WebView和JS交互 Android与JS通过WebView互相调用方法,实际是: Android去调用JS的代码 通过WebView...【问题4】如果已经建立了连接,但是客户端突然出现故障了怎么办? TCP还设有一个活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。

    1.4K20

    应用活终极总结(二):Android6.0及以上的活实践(进程防杀篇)

    APP常驻内存(活防杀),旧事重提,距离一次的研究亦有半年有余。...》 《移动端IM实践:WhatsApp、Line、微信的心跳策略分析》 >>更多同类文章 …… 4、Andriod应用活核心思想归纳 对于Android6.0及其以上系统APP活,觉得主要还是通过这两个方面进行...属性:用于标记当用户再起启动应用(TASK)时是否关闭已经存在的Activity的实例,false表示不关闭; 5)android:theme属性:用于指定Activity显示主题,这里我们自定义主题SingleActivityStyle...9、APP进程防杀方案第三阶:循环播放一段无声音频,"打造金刚不坏之身" 对于三星C9、Note4和华为4X来说,结合前台Service和悬浮界面(1像素)的活方式,在用户主动清理强杀的情况下,测试...三星C9(Android 6.0):运行Demo,后台黑屏保活效果 ? 华为Mate8(Android 7.0):运行Demo,黑屏和一键清理活效果 ?

    4.1K21

    Android 13 适配指南

    相册权限 这个动图大家可能看到过,「这是 Android 13 提供的系统图片选择器,通过Intent(MediaStore.ACTION_PICK_IMAGES); 就可以打开,支持视频、音频、图片分类...如果用户选择,比如划开对话框,或者直接返回,则应用只能在系统有临时授权的情况下发送通知(应用必须已经具有通知渠道,并且用户未在搭载 12L 更低版本的设备上明确停用应用的通知) 当然,系统也会根据应用程序的目标...❞ Intent 过滤器会屏蔽匹配的 intent 当 App 以 Android 13(33) 更高版本为 Target 的其他应用的导出组件发送 intent 时,仅当该 intent 与接收应用中的...13 允许你指定 App 中的特定广播接收器是否应被导出以及是否对设备的其他应用可见,此变更是 Android 12 更安全的组件 的延续; 以 Android 13(33) 更高版本为目标平台的应用...尽管从技术讲,任何应用都可以清除全局剪贴板中的主内容(只要它们是前台应用 Android 10+ 的默认输入法),但 Android 本身不会自动清除剪贴板。

    5.2K31

    这是什么神仙面试锦囊,Android保姆式准备秘笈三年没换工作面试也一步到位!

    下面先给大家分享一些工作几年以来面试过后整理的一些面试已经Android进阶路上的重难点: Android 进阶/面试 重难点 记得大二时“不务正业”地自学Android并跟了老师做项目,到大三开始在目前的公司实习...,至今毕业4年有多,学习Android已经有6年多了!...也不知能否做到,但我会坚持努力,当作立个flag吧~ image.png Java 集合:使用场景、源码阅读 高手不得不知的Java集合List的细节 GC机制 虚拟机 对象内存分配 要学好Android...Android基础技术和高频面试知识点 View事件传递 View绘制流程 SurfaceView的使用 IntentService替换Service的场景 ServiceAndroid序列化方式和区别...Android学习路线图 首先,对于没有学习方向,知识体系的人,工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着这个学习路线一个个的去学习,知识体系的人可以参考下整理路线的方式

    51600

    Android活从入门到放弃:乖乖引导用户加白名单吧(附7大机型加白示例)

    1、引言 IM在Android活问题经常在即时通讯网的论坛和技术群里被讨论,自从Android 8.0后系统大大降低了后台运行应用的活容忍度(详见《Android P正式版即将到来:后台应用活...链接是:https://mp.weixin.qq.com/s/JqWloZLBYicpxElVL_HKYw  2、Android活,变的越来越不可能了 IM产品在Android活问题从早期的系统版本到现在...但Android系统的历史进程终究无人能阻挡,越来越严格的活限制已经Android官方及各大手机厂商的共识。 好吧,之前费尽心机折腾的各种黑科技,如今就像浮云一样。。。 3、死磕活?...个人认为,后者是活技术发展的必然结果,就像之前分享的这篇文章里所做的尝试一样:《2020年了,Android后台活还有戏吗?看我如何优雅的实现!》,规范地引导用户“加白”。...这就需要一个补充手段,比如我们可以针对大量不同的机型,针对它的最行最常用系统版本,在应用内以FAQ帮助网页的方式,为用户提供帮助。

    1.5K00

    Android后台活实践总结:即时通讯应用无法根治的“顽疾”

    在应用场景,由于即时通讯应用(包括IM聊天应用、消息推送服务等)为了保证消息的全时、实时送达能力,必须要实现进程Service的活。...而就这一看似不起眼的问题,实际处理起来,因为众多Android手机和Android系统版本的差异,让问题的处理充满了不确定性。...概述 近期做了一个Android项目,涉及到了后台进程和Service活的问题,网上找了很多资料,基本的活方法都测试了。结果是:不同的手机,不同的Android版本活效果各有差异。...但能触发onDestory的情况,不知道内存回收会不会触发。另外两种情况(2,3)是触发的。的测试方法是在“设置”-> 应用管理-> 正在运行-> 停止服务。...基本大部分都能活了。 2)双服务觉得没有native守护进程来的好,虽然360,微信什么的都有几个进程服务,但如果添加到后台活的话,效果一样不能活,也会进入停止状态。

    2.3K30

    Android 9 Pie新版本入门

    不过,让我们来讨论一下升级到Android 9 Pie后将获得的特性。更新新版本最明显的标志是新的系统导航条,它取代了过去几次迭代中为Android用户提供良好服务的标准三图标导航条。...这并不是说Android的建议一定是错的,也不是想要使用的那些应用,主要是因为它建议的那些应用已经的主屏幕上了不认为在使用最后两个betas的时候就已经启动了一个应用程序。...但这已经足够让人抱怨了,因为实际是所有的小事情让Android 9派变得更好。有一些东西像自适应电池管理,通过学习你使用最多的应用程序,使你的电池寿命更长。...这很好(尽管我不确定它对的日常电池寿命有多大影响),但让真正感到高兴的新功能是一个新的弹出窗口,告诉你你可能还有20%的电池,而且这种充电应该持续到晚上9点20分。这实际是有用的。...但在这里,也真正在日常使用真正的区别是,文本选择放大镜显示了一个更大、更清晰的图片让你选择(它位于你的右上方选择),这使得你更容易选择正确的文本(是的,iOS已经有类似的功能)。

    1.1K30

    Android面试题大全

    空进程 Android线程间通信有哪几种方式 Devik进程和Linux进程的区别 进程活(不死进程) 当前Android进程活手段主要分为 黑、白、灰 三种 黑色活 白色活 灰色Android...这样一来,对于程序当中的隐私数据可以共享,从而更加安全。...;当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等。...google建议只把启动图片放入。 lib color Android中的几种动画 帧动画:指通过指定每一帧的图片和播放时间,有序的进行播放而形成动画效果,比如想听的律动条。...,从而能够让其他的应用保存读取此Content Provider的各种数据类型 网络存储数据 通过网络提供给我们的存储空间来上传(存储)和下载(获取)我们存储在网络空间中的数据信息 Android

    1.3K50

    Android P正式版即将到来:后台应用活、消息推送的真正噩梦

    在上述的各种应用中,尤其对于用户接触最多、最平常的IM聊天应用新闻资讯来说,活和消息推送简直事关APP的“生死”,消息推送这种能力已经被越来越多的APP作为基础能力之一,因为移动互联网时代下,用户的...3、针对以往Android版本的各种活技术回顾 搞Android端IM和消息推送服务的开发者都知道,Android P之前为了搞定客户的投诉:“为什么微信能收到消息而你们的IM却不能?”...看到上面这串厂商系统级推送通道列表,相信你已经露出了你那排洁白的牙齿了 ^_^。。。 如果剧情都能像都市爱情小说那样——“男女主角从此过上了幸福美满的生活...”,那就完美了!...版本问题,即使同一个厂商的手机的同一套SDK也存在新旧ROOM的兼容性问题; 4)这一堆的SDK,各种jar包让你的APP莫名变大了不少; 5)服务端要对接各种厂商的推送后台,各家的技术水平、SDK...不过:如果公司排斥使用第3方通送方案的话,现阶段这种混乱状况下,可以考虑直接用第3方的服务,比腾讯的信鸽推送为例(首先申明,没收信鸽的好处费,只是举个例子!)

    3.8K30

    年终总结:疫情被裁—进外包后裸辞—大厂高级Android工程师,这一年的学习之路

    2020 年已经进入倒计时,此刻,要感谢这一年努力的自己。 2020 年其实是比较特殊的一年,回看这一年全国全世界的经历都是以往年份的几倍考验几十倍的考验,对于我们个人来说又何尝不是极大的考验。...今天这篇文章就是想跟大家分享这一年的真实经历,就在前两个月已经是某大厂的高级 Android 工程师了。...今年也 30 了,普通本科生,而立之年的之前过得不是很顺利,上半年不到 3 个月他经历了两次离职…… 第一次是年初自己待了好几年的公司赶上了疫情,组织架构调整,进行了人员优化,业务线被解散,被裁员。...现在已经入职了某大厂,刚忙完双十一的活动,开启了人生新篇章。...帮你在现在的基础,重新梳理和建立 Android 开发的知识体系。

    95220

    玩转MacBook,MacBook必备软件入门

    原因如下: 1.新版Air的价格已经没有太大优势,价格相差很少,性能却天差地别 2.Air在屏幕方面和Pro差距过大,如果有机会希望你能在购买前去实体店体验对比一下 3.Air在轻薄方便也远没有之前的优势...,Pro版在重量方面现在控制的 在今年8月份购买的 MacBook Pro 2019 i9 16G版本,整机+AppCare+配件大概花费在1.8W元左右 ---- 0x3 AppCare值不值得买...AppCare为苹果提供的延服务,整机延三年+电话支持,这个东西从一出现就饱受争议,基本每个人都会百度搜索一下 「AppCare到底值不值得买」,说值的和不值的各占百分之50左右吧。...可以在 Mac 下同时模拟运行 Win、Linux、Android 等多种操作系统及软件而不必重启电脑,并能在不同系统间随意切换。...的存在才让这个世界美好了一点点。

    2K40

    那些年微信开发过的鸡肋功能,及其带给我们的思考

    从这个雄心勃勃的口号能看出张小龙对于这一版本推出的实时对讲功能有着极高的期望,然而这个功能最终还是在3年后的6.3.5版本下线了,它并没有流行起来,如今我们只能在入口极深的“微信位置共享”的时候才能找到这个功能...并非我们所熟悉的大版本号3.0、4.0、5.0等等,而是一个小版本号——安卓版本5.2,因为这个版本把微信最核心的底部导栏修改成了顶部导栏,通过左右滑动的方式切换聊天、通讯录和朋友圈,把它称之为“安卓原教旨主义版...这部分的剖析其实极具看点,但限于篇幅同时不符合本文严格意义“失败”的主题,展开讲。...《QQ音乐团队分享:Android中的图片压缩技术详解(上篇)》 《QQ音乐团队分享:Android中的图片压缩技术详解(下篇)》 《腾讯团队分享:手机QQ中的人脸识别酷炫动画效果实现详解》 《腾讯团队分享...版微信后台活实战分享(进程活篇)》  《微信团队原创分享:Android版微信后台活实战分享(网络活篇)》  《Android版微信从300KB到30MB的技术演进(PPT讲稿) [附件下载]》

    1.2K30

    腾讯技术分享:腾讯是如何大幅降低带宽和网络流量的(图片压缩篇)

    现在普通手机拍摄的图片在没有压缩的情况下大约 2M,一段 3 分钟的小视频大约 20M,直接存储传输的,不仅浪费用户带宽,容易造成菊花和卡顿,如何在不影响质量的前提下把图片和视频压缩到最小,手机耗电发热更少...QQ 相册业务发展较为平稳,总图片数有上万亿张,每日新增上传图片几百万张,每日下载图片几百亿张,外网带宽日峰值上百G,成本压力一直存在。...7、相册接入 TPG 图片压缩-前后台解决的困难 全客户端统一后台配置: 相册图片展示场景复杂,接入方案要适用于移动、PC、H5内核等所有客户端版本,根据用户客户端能力优先返还 TPG > WebP >...9、全类型多场景的图片压缩解决方案 TPG 编码压缩虽然在压缩率更优,但需要客户端和 PC 具备解码 SDK 才能正常使用,现在推广阶段,现网仍存在很多原图(JPEG、PNG、GIF)请求量。...版微信后台活实战分享(进程活篇)》  《微信团队原创分享:Android版微信后台活实战分享(网络活篇)》  《Android版微信从300KB到30MB的技术演进(PPT讲稿) [附件下载

    3K20

    2020年了,Android后台活还有戏吗?看我如何优雅的实现!

    自从Android P(即Android 8.0)出现以后,Android已经从系统层面将后台活这条路给堵死了(详见:《Android P正式版即将到来:后台应用活、消息推送的真正噩梦》),曾今那些层出穷的活黑科技能用的也越来越少了...虽然可以自已对接厂商的ROOM级推送通道,但一方面各厂商的推送接口都不一样(而且同一厂商不同的系统版本间也存在推送接口的兼容性问题),很不方便。...主要负责公司 Android 项目,核心模块的开发。涉及 GPS 定位、地图、图片编辑等功能。独立开发了手表应用项目。...活现状 我们知道,Android 系统会存在杀后台进程的情况,并且随着系统版本的更新,杀进程的力度还有越来越大的趋势(见:《Android P正式版即将到来:后台应用活、消息推送的真正噩梦》)。...Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } 以下是部分手机的厂商判断,跳转方法及对应设置步骤,跳转方法不保证在所有版本都能成功跳转

    5.7K21

    关于 Android 13,目前我们所知道的一切

    Android Beta 版往往在 9 8 月左右达到平台稳定,届时,手机厂商可能会向感兴趣的用户提供 Android 13 Beta 版更新。 Android 13 可用于什么设备?...但我们不确定,Pixel 4 Pixel 3a 设备是否会更新到 Android 13,因为谷歌对这些手机的更新承诺分别在 2022 年 5 月和 10 月到期。...(Android 13 可能在 10 月之后发布)。...虽然想列出每一款可能获得 Android 13 更新的手机,但我不想在猜测的世界里走得太远。有些品牌没有像他们应该做的那样对更新时间表做出承诺。...但我们确实知道,谷歌目前正在测试 Android 13 的一些新特性,而且,其中有一些特性是多年来一直想要的。(但这些特性尚未完成,所以未必会出现在 Android 13 中。)

    2K20

    微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)

    在客户端与服务器端同步的时候,客户端会带上已经同步下去数据的最大版本号,后台会根据客户端最大版本号与服务器端的最大版本号,计算出需要同步的增量数据,返回给客户端。...原型跟生产环境的版本存在一定差距,最主要的差距在于容灾。...《QQ音乐团队分享:Android中的图片压缩技术详解(上篇)》 《QQ音乐团队分享:Android中的图片压缩技术详解(下篇)》 《腾讯团队分享:手机QQ中的人脸识别酷炫动画效果实现详解》 《腾讯团队分享...版微信后台活实战分享(进程活篇)》  《微信团队原创分享:Android版微信后台活实战分享(网络活篇)》  《Android版微信从300KB到30MB的技术演进(PPT讲稿) [附件下载]》...内存泄漏监控和优化技巧总结》  《全面总结iOS版微信升级iOS9遇到的各种“坑”》  《微信团队原创资源混淆工具:让你的APK立减1M》  《微信团队原创Android资源混淆工具:AndResGuard

    3.9K20

    Android Q 分区储存: 最佳实践和几项更新

    在这篇文章中,我们将与您分享在 Android Q 设备如何声明应用对分区储存特性支持的方法,以及对开发者社区提交上来的一些问题的解答和最佳实践。...在即将发布的 Beta 3 版本中,如果应用的 target SDK 为 Android 9 Pie (API 等级 28) 更低版本,那么,在默认情况下,应用储存方式将不会发生任何改变,依旧采用与旧版本...在您更新现有应用以支持分区储存的过程中,您可使用新的清单属性让应用在 Android Q 设备启用新的行为,即使应用针对 API 等级 28 更低开发也无妨。...这些变更的具体实现细节将在 Beta 3 版本中公布,但我们想要提前通知您,帮助您更好地计划对于 Android Q 设备的应用更新。...常见的媒体文件有以下三类特定集合: 音频 (Audio)、视频 (Video) 和图片 (Images)。至于其它类型的文件,您则可将其储存在新的下载文件集合中。

    1.1K20

    开发者选项详解

    图 1.开发者选项 在 Android 4.1 及更低版本,开发者选项屏幕在默认情况下处于启用状态。在 Android 4.2 及更高版本,您必须启用此屏幕。...您可以在以下位置之一找到此选项,具体取决于您的 Android 版本Android 9(API 级别 28)及更高版本:设置 > 关于手机 > 版本Android 8.0.0(API 级别 26...)和 Android 8.1.0(API 级别 26):设置 > 系统 > 关于手机 > 版本Android 7.1(API 级别 25)及更低版本:设置 > 关于手机 > 版本号 在开发者选项屏幕顶部...视图属性 启用视图属性检查功能:将视图属性信息保存在 View 实例的 mAttributes 成员变量中,以便将这些信息用于调试。...从 Android 8.0 开始 Google 就开始收紧权限,到了 Android 9,哪怕是用户正在使用的前台应用,也只能在 2 分钟内扫描最多四次。

    8.1K10
    领券