Android6.0-11.0版本不同的区别
Android版本适配
一、 Android11.0
1:新增关于位置,麦克风,摄像头,只允许一次权限即可。
2:在分区基础上限制应用不能访问其它应用的文件,公共目录文件在App卸载后,不会删除,专属目录文件只能自己访问。
3:如果应用targetSdkVersion>=30,会强制打开分区存储,同时requestLegacyExternalStorage就会无效,mainfest中设置preserveLegacyExternalStorage为true,应用更新到android11可以保留存储继承模式。
4:支持存储4GB以上视频文件
5:短信新增了悬浮聊天气泡
6:飞行模式下仍保持蓝牙连接
7:原生滚动截图,原生屏幕录像
8:快捷开关图标颜色可调整
9:软件包可见性
二、Android10.0
隔离沙盒存储,相当于把文件缓存到一个专属的缓存区,所以不再需要读写权限,针对媒体文件,需要媒体权限,访问设备标识,需要签名权限。
要求应用的targetSDKVersion>=23,不然会向用户发出警告(第一次安装)。
新增了后台定位权限。
三、Android9.0
1.3.1:网络请求错误
以前我在开发的时候遇到这样一个问题,就是网络请求在其他设备上都能成功获取数据,但是在华为,荣耀10,华为mate20上经常出现请求不成功的情况(net.UnknownServiceException(未知服务异常))因为Android p(9.0)以后限制了非加密的流量请求,导致出现not permitted by network security policy(网络安全策略不允许),所以后来在Goole官方文档查一下资料,解决也挺简单,在res目录下创建一个xml文件夹,里面创建一个network-security-config文件,将cleartexttrafficPermitted=“true”,然后在清单文件application节点下,有一个networkSecurityConfig属性,将新建的xml文件引用到这个属性当中,这个问题就解决了。
华为pro10加载https的图片,需要在清单文件application节点下,添加usesCleartextTraffic=“true”
1.3.2:错误弹窗
华为荣耀10,Android9.0以后部分手机打开应用会出现一个错误提示弹窗(detected problems with API com patibility)出现这个情况原因是:Android p(9.0)后谷歌限制了开发者调用非管方公开API方法或接口,如果代码中直接用反射调用源码就会出现这种错误弹窗,可以通过反射在App启动的时候干掉这个弹窗
1.3.3:qq分享错误,提示找不到schmeRegistry类
Android9.0完全弃用了Apache http客户端,想要继续使用,需要在清单文件中添加android:required=“false”
1.3.4:刘海屏API支持
1.3.5: 室内WIFI定位,通知, 增强体验, 通道设置、广播以及免打扰、 多相机支持和相机更新
四、Android8.0问题
1:适配不同设备
3:Android O版本对通知做了规范性的控制,强制用户在发送通知的时候,对通知进行系统性的管理,新增了chanel渠道的功能,所以创建通知时候需要给通知添加通知渠道NotifficationChannel(7.0部分设备就有这个问题)
4:不依附于activity的悬浮窗不能显示
在广播中弹出对话框时,需要将layout-flag设置为windowmanager.layoutparams.TYPE_APPLICATION_OVERLAY
5:涉及到需要访问清单文件或者packagemanager类时候
需要加入uses-permissionandroid:name=“android.permission.REQUEST_INSTALL_PACKAGES”/
6:小米note2非全屏的activity不能设置screenorientation,当activity的style设置了WindowsTranslucent=“true”,有些设备认为不是Fullscreen,这样做主要是想阻止非全屏activity锁定屏幕悬转而抢占全屏activity的焦点,所以会报错
五:Android7.0问题
外部分享文件,使用相机拍照需要使用内容提供者fileprovider,取消了静态广播
广播使用案例
1.5.1监听网络状态
没网的情况下,白板,有网的情况下还白板,这个时候需要检测网络状态,一旦连网,重新加载
1.5.2.跨进程通信 ,相册(清除缓存)
1.5.3.消息推送
六:Android6.0问题
1:动态授权,if语句判断,重写onRequestermission方法,继续if判断,请求码
2:收不到通知
3:文本选择(Text Selection)
用户在应用中选择文字后,你现在可以显示一个浮动工具栏(floating toolbar),展示并进行剪切、拷贝、粘贴操作,交互过程的实现和contextual action bar的实现一样( Enabling the contextual action mode for individual views)
实现选择文字后的浮动工具栏