参考文档:
1、行为变更:以 API 29 及更高级别为目标平台的应用 | Android 开发者 | Android Developers
实际操作内容:
1、透明主题的activity不能主动设置方向。需要删除android:screenOrientation="portrait"。
im相关的有
IMWebShareActivity
项目里的透明主题,如下,有2个主题需要im组自行修改
@style/TransparentTheme
@style/TranslucentStatusTheme
@style/Theme_Bbs_Window_Up_Down
@style/Middle_AppDialogTheme
@style/PushTransparentTheme kidpush库需要im修改
@style/ShareTheme
@style/animation_image
@style/Theme_Bbs_Transparent
@style/Theme_Bbs_Transparent_NoAnim
I@style/MShareTheme kidim库需要im修改
@style/animation_image
@style/translucent
2、使用activity之外的context启动activity时,需要加上Intent.FLAG_ACTIVITY_NEW_TASK
这个项目里是ok的
3、前台服务需要添加权限
<uses-permissionandroid:name="android.permission.FOREGROUND_SERVICE"/>
4、限制静态广播的接收,其实这里并不是不能用静态广播,而是使用时要明确包名等信息即可
具体的解决办法参考
Android8.0 静态receiver接收不到隐式广播_明朗晨光的专栏-CSDN博客
AlarmReceiver相关的修改了,im相关的有 kidpush库里的还未修复
5、Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。 即默认禁掉http请求
项目里已经加了
6、非 SDK 接口访问限制,限制了反射的使用
对于已有的反射代码,加入Exception控制。对于有更好替代方法的场景,加入新的方法。这点还没有完全做完。
这里需要告诉测试那些加了代码的地方
实际操作可以参考
适配Android P之非SDK接口限制的排查方法 - 简书
这里重点讲到一种绕过P限制的方法,参考下面
突破Android P非SDK API限制的几种代码实现 - 掘金
绕过反射的分析
深入源码分析non-sdk并绕过Android 9.0反射限制_移动开发_XXOOYC的专栏-CSDN博客
简单绕过反射
绕过 Android P以上非公开API反射的限制 - 简书
1)viewpager通过反射修改了自动滑动的速度
2)修复7.1.1的toast的bug,官方的方案是加一个try catch
3)所有的反射相关的代码已经做了TODO标记
7、刘海屏适配
已经适配了
8、sensor和麦克风后台管控
项目里目前 小管家模块用到 sensor和麦克风,需要IM组处理
9、设备识别码
通过Build.SERIAL不再能够获取到真实数据,Build.serial:unknown,需要通过Build.getSerial()获取。同时需要用户授权READ_PHONE_STATE权限。