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

489

被折叠的 条评论
为什么被折叠?



