Android 6~11版本适配

本文详细介绍了Android 6到11版本的适配问题,包括强制分区存储、权限变化、剪切板访问限制、深色主题、后台定位权限、通知渠道等,为开发者提供了解决不同版本兼容性问题的方案。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

Android 12 ~ 13 版本适配

Android R(11):

1,强制分区存储(Scoped Storage)
解决方案:
— manifest 里面加属性 preserveLegacyExternalStorage,保证覆盖安装没问题,好让开发者完成数据迁移的工作;
— getExternalFilesDir(),getExternalCacheDir()
2,读取电话号码需要权限 READ_PHONE_NUMBERS;
3,自定义 Toast,不允许在后头显示了;
4,获取其他应用的信息,比如包名,名称等等
— 必须在清单文件中添加 queries 元素;
— QUERY_ALL_PACKAGES 权限;
5,无障碍辅助功能需要使用 flagRequestAccessibilityButton 标记声明关联;
6,请求的权限数月未使用,系统会通过自动重置用户已授予应用的运行时敏感权限;
— 可以引导用户去设置页面关闭自动重置权限功能;
7,前台 Service 需要访问位置信息、摄像头和麦克风;
— manifest 添加 foregroundServiceType 属性;

Android Q(10):

1,分区存储(Scoped Storage)
解决方案:
— manifest 里面加属性 requestLegacyExternalStorage
— getExternalFilesDir(),getExternalCacheDir()
2,剪切板,只能在前台页面获取焦点后才能访问;
3,深色主题;
4,后台定位权限,ACCESS_BACKGROUND_LOCATION;
5,应用处于后台时,无法启动 Activity;
6,对不可重置的设备标识符实施了限制,READ_PRIVILEGED_PHONE_STATE;

Android P(9):

1,Http请求,默认停止明文传输,建议用 https;
解决方案:
— manifest 里面加属性 networkSecurityConfig
— 建议用 https
2,前台服务,startForegroundService,必须加权限 FOREGROUND_SERVICE;
3,Apache HTTP 客户端弃用,需要 manifest 里加 uses-library;
4,对使用非 SDK 接口的限制;

Android O(8):

1,通知渠道,NotificationChannel;
2,安装 apk,需要权限 REQUEST_INSTALL_PACKAGES;
3,悬浮窗适配,type 必须用 TYPE_APPLICATION_OVERLAY,还需要声明权限;
4,透明主题 Activity,不能有属性 screenOrientation;(8.1后修复了)
5,用什么权限就得去申请什么权限;
6,后台执行限制,startService 可能报错 IllegalStateException,得用 startForegroundService;
7,桌面图标,适配添加 ic_launcher_round;
8,移除了所有的隐式广播接收器,只能在应用活着的时候,显式注册了;

Android N(7):

1,共享文件,得使用 FileProvider;
2,PopupWindow 位置不正确,使用 update(),Gravity 导致的;(这个不属于适配问题,只是在这个版本有问题)
3,一些隐式广播必须动态注册了:
CONNECTIVITY_ACTION
ACTION_NEW_PICTURE
ACTION_NEW_VIDEO
4,Toast 导致的 BadTokenException;(这个不属于适配问题,只是在这个版本有问题)
解决方案:
— 利用反射机制,改由我们自己Handler处理Toast的显示,并添加BadTokenException异常捕获;
https://blog.csdn.net/joye123/article/details/80738113
5,支持多窗口支持(分屏模式);

Android M(6):

1,运行时权限检查,checkSelfPermission(),requestPermissions();
2,移除 Appache 的 HTTP Client,需要 build.gradle 里加 useLibrary;

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值