美文网首页
android 9 ,10 前台服务权限

android 9 ,10 前台服务权限

作者: 钢镚koala | 来源:发表于2020-05-11 14:47 被阅读0次

    比较坑,兼容新的系统Android9 Android10 。

    1. startForeground(NOTIFICATION_ID, notification)
      需要在AndroidManifest.xml中加入以下普通权限,不然在9.0系统中通知没法显示或者直接报错。
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
    
    
    1. webview找不网页
      解决方法:在AndroidManifest.xml文件中的Application标签添加android:usesCleartextTraffic="true"

    2. target sdk 28 ,http 建议改为https,无论什么环境!!

    3. 限制 HTTP 网络请求(*)

    Android 9.0 中限制了 HTTP(明文传输)网络请求,若仍继续使用HTTP请求,则会在日志中提示以下异常(只是无法正常发出请求,不会导致应用崩溃):

    java.net.UnknownServiceException: CLEARTEXT communication to xxx not permitted by network security policy
    适配的方法如下:

    第一种

    在资源目录中新建一个 xml 文件作为网络安全配置文件,例如 xml/network_security_config.xml,然后在文件中填写以下内容:

    <?xml version="1.0" encoding="utf-8"?>

    <network-security-config>

    <base-config cleartextTrafficPermitted="true">

    <trust-anchors>

    <certificates src="system" overridePins="true" />

    <certificates src="user" overridePins="true" />

    </trust-anchors>

    </base-config>

    </network-security-config>
    在AndroidManifest.xml进行配置:

    <application

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

    </application>
    第二种

    Android 6.0 中引入了是否允许网络使用明文传输的配置:

    <application android:usesCleartextTraffic=["true" | "false"]>
    原来默认为 true,但在 Android 9.0 中默认值改为了 false,因此将配置手动设为 true 即可解决明文传输被限制的问题

    相关文章

      网友评论

          本文标题:android 9 ,10 前台服务权限

          本文链接:https://www.haomeiwen.com/subject/abeunhtx.html