android 9.0 使用http请求异常问题

Android 专栏收录该内容
86 篇文章 0 订阅

原因:使用android 9.0设备进行http网络请求。会出现网络连接没有权限等问题,包括webView。

解决方案1: app请求改用https
解决方案2: targetSdkVersion 降到27以下
解决方案3: 在res下建一个xml文件夹,然后创建一个名为:network_security_config.xml 文件(名字自定) , 内容如下, 大概意思就是允许开启http请求

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

然后在APP的AndroidManifest.xml文件下的application标签增加以下属性

<application
...
 android:networkSecurityConfig="@xml/network_security_config"
...
    />

顺带说说9.0的新特性吧:
android9.0新特性整理如下:

  1. 全面屏的全面支持
    加入了对刘海屏的支持(谷歌称之为凹口屏幕(display with a cutout)。借助最新的提供的DisplayCutout类,开发者可以找到非功能区域的位置和形状,而非功能区域是不应显示功能的;使用getDisplayCutout()就可以获取这个区域的详细信息,未来刘海屏手机很有可能成为主流趋势,在前摄像头没有比较好的隐藏方案出现之前,这可能是提高屏占比的好方法。 (屏占比=屏幕面积/整机面积)

  2. New gesture navigation(新的手势导航栏)
    引入了一种新的基于手势的系统界面,界面下方会有一个小的横线式主屏键,有点类似于iPhone X的手势操作,很多操作逻辑与iPhone X相似、但更人性化,相对来说,iPhone X的“横线”只是个摆设式的提醒UI,而Android 9.0 Pie则赋予它真正的操作能力。在椭圆指示器上滑动可以作为滚动条,但是在新的导航条上仍然有一个返回键。向右滑动可以访问最近的应用,或者向上滑动可以访问你的应用抽屉和应用建议。它在Pixel手机上非常流畅。切换到以前的应用程序,在浏览窗口后,在底部添加一个滑块。

  3. 自适应功能
    Adaptive Battery(电量自适应):更智能的方式来适应电池和屏幕,从而整体改善续航能力。谷歌加入了Adaptive Battery功能,不过这个模式需要单独开启,在该模式下,程序不需要唤醒可以极大的降低资源占用,更关注用户最常用的服务和应用程序,也算是AI技术的应用之一。这样就可以最大限度的降低后台占用,从而提升电池续航能力。这是Android团队与Google DeepMiind团队合作开发的成果,不仅可以预测用户接下来几个小时内将使用的应用程序,而且还包括在当天用户何时会使用哪些应用程序。智能的一种应用。 Adaptive brightness(亮度自适应):亮度方面也进行了人工智能升级,通常情况下用户需要手动调节,或者通过光线传感器进行自动调整,但往往不够精准,有时候过亮或者过暗一点,但用户也不会太过于在意。新的Adaptive Brightness技术同样通过学习用户使用习惯和偏好来解决这个问题,比如你经常在比较明亮的环境下使用,那么手机会自动的调整到更适合的情况,除了充分考虑到用户周围环境之外,也允许学习用户的习惯,了解你当前的亮度需求。

  4. 网络还有神经网络
    在Android P上,任务可以声明它们估算的数据大小,信号预读取并且指定详细的网络需求–任务载体则可以报告网络是否拥挤或是否不计量。JobScheduler便可按照网络状态管理任务。另一方面,神经网络API在Android 8.1引入,目的是加速Android设备上的机器学习。Android P扩展并改进了这些API, 为9个操作增加了支持,分别是Pad, BatchToSpaceND, SpaceToBatchND, Transpose, Strided Slice, Mean, Div, Sub和Squeeze。在Android P之后,设备将会对网络有更精细的调整:根据任务需求的数据大小和当前的网络环境。在收费网络里延迟一些网络要求,而在不计费的网络里可以通过消息预获取来得到更好的用户体验。神经网络API的更多操作则是让设备变得更智能、更聪明。智能的一种体现,节省流量和网络速度优化体验的一种好的改进。

  5. WindDown
    WindDown是一项新功能,它可以在你选择的就寝时间自动打开夜灯和DND模式,让你更容易入睡。新的DND管理模式,它可以停止所有的调用或通知声音,甚至可以在你获得新的声音时弹出预览。“下风”功能实现了这三种功能:在晚上打开夜灯,在DND模式下快速运行,甚至在睡眠时间接近时以灰度显示。所有这些都有一个手势——把你的手机翻过来,它就会自动进入数字健康模式。

  6. App Actions:应用程序操作
    这类似于你可以通过长时间按下图标来调用应用程序的快捷方式,但考虑到它是谷歌启动程序,它可以为你的手机提供一些建议,因此完全不同。这个特性推荐使用AI进行操作。AI会尝试找出你接下来要做什么,以及你接下来需要什么,当你启动app抽屉时,它会告诉你。根据你的当前地理位置、一天中的某个时间段,甚至是你连接耳机的时候,向你推荐一些东西。还有位于应用程序抽屉中的快捷键可以预测你将要做什么,这样你就可以更快地完成你在手机上要做的事情。例如,如果你通常打开应用程序面板,然后打开手机应用程序,然后给你的好朋友打电话。

  7. 应用定时器
    设置应用程序的时间限制,当你在指定的时间段内使用它们之后,Android会自动将应用程序的图标变灰——暗示你应该把时间花在使用应用程序以外的事情上。可以自由设置程序的使用时限。

  8. 切片App slices
    slice为你提供了应用的一部分,Android系统认为这是你在寻找某个应用时需要的功能。例如,如果你在搜索中输入“Hawaii”,一个应用程序切片可能会建议你在谷歌photos应用中查看你最近的夏威夷度假照片。比如你要打车,Slices可以做到这一点,搜索“Lyft”,你就会看到一个能给你提供价格和时间,你可以用来完成预约服务。

  9. 辅助功能菜单
    在Settings>Accessibility > Accessibility Menu中你可以激活新的辅助功能菜单,该菜单会启用一个图标,您可以点按该图标以执行快速设置,设置最近的应用和音量等操作。

  10. Android Dashboard
    它告诉你在手机上花了多少时间,以提醒用户尽量少用这个APP,这与iOS系统的“屏幕时间”功能类似,用户能够更好地去管理自己在手机上的使时间。

  11. Manual rotation(手动旋转)
    那些很烦的自动旋转现在可能成为过去。现在旋转屏幕也可以是手动的了,在导航栏上有一个指示器可供点击。

  12. Security and privacy features(安全和隐私特性)
    Android Pie引入了大量新的安全和隐私特性,以帮助您保持数据的安全性。更新中引入的最有用的特性之一是,当你的麦克风、摄像头或传感器空闲时,应用程序将不再能够访问它们。所有应用都使用HTTPS,这是对Android安全用户的肯定。AndroidPie上的所有应用程序默认都使用HTTPS。Android关心您的隐私。

  13. Do Not Disturb(免打扰)
    它现在将屏幕变成了灰度,同时也明显地禁用了通知,除非有重要联系人来呼叫你。

  14. Better notification management(更好的通知管理)
    可以关闭一系列应用程序的通知,系统甚至可能会要求你在取消通知后停止接收特定类型的通知。让你进入AI时代。您现在可以在消息应用程序中查看图像,并使用smartreply使用notificationshade来回复邮件。此外,Android还会通过分析收到的消息来快速做出反应,或者增加一个action以对消息或从通知直接进入文字的行为作为反映。如:直接在通知栏跟好友聊天;直接在通知栏直接看到好友发送的图片。

  15. GPS定位之外的WiFi定位
    通过WiFi往返时延室内定位(RTT表示往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延),简单理解就是室内无线电波(WIFI)、磁场、声音信号或移动设备收集的其他感觉信息来定位建筑物内物体或人的技术。

  16. 支持设备使用插槽连接来显示
    手机可以连接电脑显示屏,来感受大屏显示的魅力。

  17. 多摄像头支持,增加了连接USB摄像头的功能
    在Android Pie的设备上,用户可以同时从两个或多个物理摄像头访问数据流。在具有双前置或双后置摄像头的设备上,可实现使用单个摄像头无法实现的创新功能,例如无缝变焦,散景和立体视觉。API还允许调用或融合的摄像机媒体流,以自动在两个或更多摄像机之间切换。相机中的其他改进包括 有助于减少初始捕获期间延迟的其他会话参数,以及允许相机客户端处理各种用例而无需停止和启动相机流的表面共享。我们还添加了基于显示的闪存支持和访问OIS时间戳的 API,以 实现应用级图像稳定和特效。在Android Pie中,多摄像头API 支持具有FULL或 LIMITED功能的设备的单色摄像头 。单色输出通YUV_420_888 Y为灰度,U(Cb)为128,V(Cr)为128 的格式实现 。

  18. 黑暗模式
    你可以在Settings>System > Display > Advanced > Devicetheme中选中“Dark“项来打开该功能,来让Android设备上变暗。

  19. 新截图快捷方式
    告别默认的Power+ Volume Down按钮组合,现在通过点击Power菜单中的图标可以随时获取屏幕截图。

  20. 仪表板
    Android的仪表板显示显示你花了多少时间使用手机,并通过以下方式将使用数据细分为更全面的部分:一个饼图,表示每天花在应用程序上的时间解锁设备的次数您的通知总数您每天在设备上花费的小时数。

  21. 媒体面板
    由于音量控制专用于振铃器音量,Android的媒体设置现在将在屏幕右侧垂直对齐的滑块中显示音量控制,并且同一媒体面板为。连接到您的Android手机的所有设备显示不同的音量控制设置。

  22. 157个新的Emojis表情
    157是一个很大的数字,包括美洲驼、冷脸、热脸、芒果果、滑板等。谷歌严格遵守其Unicode标准,去掉了中性字符。

  23. Wi-FiMAC随机化功能
    每次连接到新的Wi-Fi网络时,都会为设备随机分配新的MAC地址。这是第9版Android隐私和安全功能的众多改进之一。

  24. 支持指纹确认的安全事务
    在Android Pie中,系统代表您的应用提供生物识别身份验证对话框。此功能为对话框创建标准化的外观,感觉和位置,使用户更有信心他们对可信赖的生物识别凭据检查器进行身份验证。如果您的应用程序用于FingerprintManager向用户显示指纹身份验证对话框,请切换为使用BiometricPrompt。BiometricPrompt依赖于系统来显示身份验证对话框。它还会更改其行为以适应用户选择的生物识别身份验证的类型。

  25. 改进了JobScheduler以便更好地处理与网络相关的工作。
    从Android Pie开始,JobScheduler可以使用运营商提供的网络状态信号来改善网络相关作业的处理。 JobScheduler可以声明其估计的数据大小,信号预取,并指定详细的网络要求。JobScheduler然后根据网络状态管理工作。例如,当网络发出拥塞信号时, JobScheduler可能会推迟大型网络请求。在未计量的网络上,JobScheduler可以运行预取作业以改善用户体验,例如通过预取标题。 添加作业时,请务必使用setEstimatedNetworkBytes(),setPrefetch()并setRequiredNetwork()在适当时帮助 JobScheduler正确处理工作。当您的作业执行时,请务必使用Network返回的对象JobParameters.getNetwork()。否则,我们可以将隐式使用设备的默认网络,该网络可能无法满足您的要求,从而导致意外的数据使用。

  26. bitmaps and drawables使用了新的解码器解码
    Android Pie引入了ImageDecoder类,效率更高效。它提供了一种用于解码图像的现代化方法。使用此类而不是BitmapFactory和BitmapFactory.Options API。ImageDecoder允许new一个Drawable或一个 Bitmap字节缓冲区,文件或URI。要解码图像,请先createSource() 使用编码图像的来源进行调用 。然后,调用decodeDrawable() 或decodeBitmap() 通过传递ImageDecoder.Source 对象来创建一个Drawable]或一个Bitmap。要更改默认设置,请传递OnHeaderDecodedListener给 decodeDrawable()或decodeBitmap()。 一旦知道,就ImageDecoder调用onHeaderDecoded()图像的默认宽度和高度。如果编码图像是动画GIF或WebP,则decodeDrawable()返回该类Drawable的实例 AnimatedImageDrawable。我们可以使用不同的方法来设置图像属性:要将解码图像缩放到精确大小,请将目标尺寸传递到 setTargetSize()。您还可以使用样本大小缩放图像。将样本大小直接传递给setTargetSampleSize()。要在缩放图像范围内裁剪图像,请调用 setCrop()。要创建可变位图,请true进入setMutableRequired()。ImageDecoder还可以为图像添加自定义和复杂的效果,如圆角或圆形蒙版。setPostProcessor()与PostProcessor 类的实例一起使用以达到想要的任何绘图效果。

  27. 新的“AnimatedImageDrawable”类
    用于在UI中支持本地动画 Android Pie引入了AnimatedImageDrawable用于绘制和显示GIF和WebP动画图像的类。AnimatedImageDrawable类似于 AnimatedVectorDrawable渲染线程驱动动画的方式AnimatedImageDrawable。渲染线程还使用工作线程进行解码,因此解码不会干扰渲染线程上的其他操作。此实现允许您的应用显示动画图像,而无需管理其更新或干扰应用的UI线程上的其他事件。一个AnimatedImageDrawable可以利用的实例进行解码ImageDecoder。

  28. 支持HDR VP9视频和HEIF图像压缩
    Android Pie增加了对高动态范围(HDR)VP9配置文件2的内置支持,因此我们现在可以通 过YouTube,Play电影和支持HDR的设备上的其他来源播放用户提供支持HDR的电影。Android Pie增加了对平台的HEIF(heic)图像编码的支持。HEIF静态图像样本在MediaMuxer和MediaExtractor类中得到支持HEIF改进了压缩以节省存储和网络数据。借助Android 9设备上的平台支持,您可以轻松地从后端服务器发送和使用HEIF图像。确保您的应用与此数据格式兼容以进行共享和显示后,请在应用中尝试将HEIF作为图像存储格式。您可以使用ImageDecoder或BitmapFactory进行jpeg-to-heic转换以从jpeg获取位图,并且可以使用HeifWriter从YUV字节缓冲区,Surface或Bitmap写入HEIF静止图像。

  29. Autofill框架的进一步改进
    (Autofill Framework最低支持SDK API 26(Android O)+),Demo地址:https://github.com/googlesamples/android-AutofillFramework,Android 9引入了多项改进,自动填充服务可以实现这些改进,以在填写表单时进一步增强用户体验。

  30. 客户端加密备份
    Android Pie增加了对使用客户端密钥加密Android备份的支持。满足以下条件时,将自动启用此支持: 用户已使用Android Pie或更高版本启用了备份。 用户已为其设备设置了屏幕锁定,需要PIN,图案或密码才能解锁。启用此隐私措施后,需要设备的PIN,模式或密码才能从用户设备的备份中恢复数据。

  31. Material Design迎来2.0时代
    神经网络Android 9.0加入了大量的圆角设计,UI方面的优化,感觉有些鸡肋,在现在各种模仿的设计趋势和各种定制化UI下,许多功能只是看看而已,用不到多少。

作者:心如简_cc99
链接:https://www.jianshu.com/p/4ae64deb41e3
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

  • 3
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值