Android 11 上传图片适配 和 第三方登录
一 上传图片
本次适配,不添加android:requestLegacyExternalStorage="true" ,过程都用原生系统代码
1.首先选择图片
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);intent.addCategory(Intent.CATEGORY_OPENABLE);intent.setType("image/*");startActivityForResult(intent, 111);
2.接受图片Uri
@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == 111) {if (data != null) {Uri uri = data.getData();}}}
3.Uri转成byte[]
InputStream inputStream = null;byte[] buffer=new byte[0];try {inputStream = context.getContentResolver().openInputStream(uri);buffer = new byte[inputStream.available()];inputStream.read(buffer);} catch (IOException e) {e.printStackTrace();}
4.接口上传图片
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), buffer);MultipartBody.Part body = MultipartBody.Part.createFormData("file",uri.getPath(),requestBody);App.app().getBpService().uploadoss(body).compose(RxUtil.io2main()).subscribe();
还有其他工具类函数
获取图片Bitmap
public static Bitmap getBitmapFromUri(Context context, Uri uri) throws IOException {ParcelFileDescriptor parcelFileDescriptor =context.getContentResolver().openFileDescriptor(uri, "r");FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor();Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor);parcelFileDescriptor.close();return image;}
保存图片
public static void saveBitmapToFile(Context context, Bitmap bitmap, String title, String discription) {MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, title, discription);}
二 第三方登录
1.Android 11使用QQ互联登录时提示您没有安装最新版本Q
原因是Android11 新特性 软件包可见性
2.解决方法,在注册文件里,与权限同级,添加如下代码,内容为第三方登录应用的包名
<queries><package android:name="com.tencent.mm" /><package android:name="com.tencent.mobileqq"/><package android:name="com.tencent.tim"/></queries>
三 定位权限 始终允许
Android 10位置权限 (Android 10 Location Permissions)
随着Android 10的引入,除了对话框UI之外,处理位置权限的方式也发生了变化。
现在,允许用户选择在后台运行应用程序时是否要更新位置。
为此,需要在清单文件中声明新的权限和ACESS_FINE_LOCATION一起申请:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
https://blog.csdn.net/cunchi4221/article/details/107473878
Android 11 上传图片适配 和 第三方登录相关推荐
- android 11兼容适配之根据包名查看是否安装第三方应用
android 11兼容适配之根据包名查看是否安装第三方应用 本文介绍android 11的兼容性适配之一的根据包名唤起第三方应用功能.包括但不限于(支付宝.微信.QQ.微博.百度地图.高德地图.腾讯 ...
- Android 11 应用适配 兼容性
Android 11 应用兼容性适配指导 本文非原创-若侵犯到原创利益,请联系删除 原文 https://open.oppomobile.com/wiki/doc#id=1072 一.隐私更新 2.1 ...
- android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法
这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...
- android 11.0 12.0第三方输入法app设置系统默认输入法
1.概述 在11.0 12.0的产品开发中,有功能需要要求设置默认输入法,替换掉系统的输入法,所以这就需要了解设置 输入法的相关功能需求,然后根据输入法包名来设置默认输入法 2.第三方输入法app设置 ...
- android 11中置入第三方应用apk
在packages/apps/目录中新建文件目录,例如MyApp 拷贝MyApp.apk拷贝到该目录下 在packages/apps/MyApp/目录下新建Android.mk # ifneq ($( ...
- 干货 | Trip.com Android 11 适配之旅
作者简介 Symeon,携程高级移动开发工程师,关注Android前沿技术. Google Play 商店在 2021 年第 3.4 季度正式加强对应用 targetSdkVersion 的限制,要求 ...
- Android 11 变更及适配攻略
终于开始了Android 11的适配工作.记录一下,供需要的人参考. 1. 准备工作 老规矩,首先将我们项目中的 targetSdkVersion 改为 30.或者使用兼容性调试工具,后面我会说到. ...
- Android 11适配
Android 11 ( R )适配 1.存储机制更新 Scoped Storage(分区存储) 应用 targetSdkVersion >= 30,强制执行分区存储机制.之前在AndroidM ...
- android 前后同时预览_vivo Android 11开发者预览版上线,抢先适配快人一步!
大家好,我是凯航,一个被代码耽误的撰稿人,今天加薪姐不营业,我来代班. 昨天,谷歌发布了新版Android系统--Android 11 Beta.vivo仍是首批搭载Android 11 开发者预览版 ...
最新文章
- Webpack4 高手之路 第一天
- php从入门到精通19天笔记,传智播客-PHP从入门到精通(19天)-video
- 015_Vue生命周期
- 【Matlab】判断是否为空?是否为NaN?
- 第10篇:Flowable-BPMN操作流程部署、启动
- python日志,支持彩色打印和文件大小切片写入和写入mongodb
- 【luogu4145】 上帝造题的七分钟2 / 花神游历各国 [线段树]
- postman 第4节 切换环境和设置读取变量(转)
- Javascript——读取json文件方法总结
- 我的世界神级种子Java_《我的世界》值得收藏的10个“神级种子”,最难找的遗迹都在这!...
- 智能家居助手(一)-项目概述
- 测试从零开始-No.9-软件配置管理介绍
- 华为视频会议终端8000、9000系列取名有什么含义?
- 【题目】pyCharm 专业版 和 社区版的区别以及如何查看其版本
- POJ 3320 Jessica's Reading Problem
- 安恒6月赛部分做题记录
- 云时代的IT应用质量管理新动向
- 怀揣坚定与执着,踏实稳步向前
- 记录2022年双非硕的艰难春招之路
- 安卓软件全家桶分析,哪些软件是一伙的
热门文章
- 图片花絮《敏捷落地-深圳(20140517-18)》
- 《Head First 设计模式》:代理模式
- 事件抽取与事件图谱构建
- 狂野飙车3 java_狂野飙车3-街头规则
- 了不起的 Deno 入门教程
- 堆和栈内存的比较 in C++【C++学习笔记】
- ElasticSearch(ES) Connection reset by peer解决方案
- 小米系统不显示手动选择安装包
- 修改sor文件的测试时间
- Semi-Supervised Video Salient Object Detection Using Pseudo-Labels 论文详读