Android适配8.0遇到的一些坑

刚进新公司的时候华为市场对APP提示的是不兼容android8.0,查看了下原代码发现项目基本还停留在6.0的适配上,所以就大致适配了7.0、8.0,先记录几个主要的问题点,后续更新。首先必须的把SdkVersion提升到26把(华为市场提示不兼容8.0也是这个原因),然后google了一圈。

大致google+百度了一大圈,基本锁定会导致程序异常+功能失效的几个点。

①:通知(会收不到通知)

②:悬浮窗(7.0、8.0)(会崩溃)

③:自适应图标(图标终于有所关注)


一:通知渠道

Android O版本对通知做了规范性的控制,强制用户在发送通知的时候,对通知进行系统性的管理,新增了channel渠道功能,貌似Android P版本对与这一点也做了强调,使用户能够更好的管理通知,做到有目的性的屏蔽通知。下面上相关性的代码

NotificationChannel mChannel =new NotificationChannel("channel_01","消息推送", NotificationManager.IMPORTANCE_DEFAULT);

notificationManager.createNotificationChannel(mChannel);//创建一个通知渠道

其他和原设置一样即可。

二:悬浮窗

在一些广播中需要弹出对话框的应用场景,没有依附的activity,这个时候就可以用悬浮窗,相关适配以及源码有注释自行查看。附申请权限源码

Android适配8.0遇到的一些坑_第1张图片
悬浮窗dialog
Android适配8.0遇到的一些坑_第2张图片
另外需在AndroidManifest.xml文件中加入"SYSTEM_ALERT_WINDOW"权限

三:自适应图标 

Android O版本对图标做了修改,总体上来讲使Android APP从桌面就开始高大上起来了,加入了一些列动画,详细的可以看这篇博文。

Android O自适应图标

        另外:设计到一些需要访问清单文件,或者是pakageManager类的时候,适配8.0需要加入新的权限,安装权限。

        


以上基本就是8.0中着重需要注意的点,其实通知渠道设置在7.0中就已经开始出现,如果适配了7.0的话,8.0基本也已经可以了。如果还出现8.0崩溃的情况,看看崩溃日志应该都可以解决了,还是不行的话请私发我崩溃信息。对此再做出更新。

最后给大家介绍一款比较好的申请权限的第三方库,强烈推荐。一句话解决问题并且可以直接跳转到相关权限授权页,适配率比较高。简洁!

一句话解决6.0权限申请

你可能感兴趣的:(Android适配8.0遇到的一些坑)