• Android API 30及更高版本网络权限设置



    一、网络权限设置

    Android API 30 及更高版本中,Google 引入了更严格的网络安全策略,其中包括对应用程序的网络访问权限进行了更多的限制。如果您的应用程序需要进行网络访问:

    • 需要确保在清单文件(AndroidManifest.xml)中正确声明网络权限;

    • 并且在运行时请求网络权限。


    二、配置步骤

    1、在 AndroidManifest.xml 文件中添加网络权限声明

    AndroidManifest.xml 文件中添加网络权限声明:

    
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.xxx" >
        
    	<uses-permission android:name="android.permission.INTERNET" />
    
    	...
    manifest>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2、在 AndroidManifest.xml 文件中的 application 节点下配置网络安全策略

    AndroidManifest.xml 文件中的 application 节点下配置网络安全策略:

    
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.xxx" >
        
    	<application 
    		android:usesCleartextTraffic="true"
        	...>
        	...
    	application>
    
    	...
    manifest>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    usesCleartextTraffic 是清单文件(AndroidManifest.xml)中的配置项,用于指定应用程序是否允许明文流量(非加密流量)的网络请求,明文流量是指未经加密的网络流量,可能存在安全风险。

    • true:应用程序可以发送明文流量的网络请求;

    • false :应用程序将被限制只能发送加密流量的请求(即 HTTPS 请求)。

    注意事项:

    • 开启明文流量可能会带来安全风险,因为未经加密的网络通信可能会被中间人攻击截取和窃听。
    • Google 在 Android 9(API 30)及之后的版本中默认禁止应用程序发送明文流量的网络请求,因此如果您的应用程序需要与不支持 HTTPS 的服务器通信,您可能需要显式地配置 android:usesCleartextTraffic="true"。

    除了 usesCleartextTraffic 配置项外。还可以在网络安全配置文件(res/xml/network_security_config.xml)中配置网络安全策略,然后在清单文件中引用该配置文件:

    
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.xxx" >
        
    	<application 
    		android:networkSecurityConfig="@xml/network_security_config"
        	...>
        	...
    	application>
    
    	...
    manifest>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    network_security_config.xml

    
    <network-security-config>
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">com.xxxdomain>
        domain-config>
    network-security-config>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    配置文件允许 com.xxx 及其 所有子域名 的明文流量(非加密流量),通过使用 android:networkSecurityConfig 配置项,您可以灵活地定义应用程序的网络安全策略,以确保应用程序与网络资源之间的安全通信。



  • 相关阅读:
    蜂鸟E203学习笔记(二)--蜂鸟E203总体框架
    读图数据库实战笔记01_初识图
    关于反弹Shell个人的一些理解与学习收获
    CSS3 新增属性-边框圆角-文字阴影-盒子阴影
    EventBus详解 (详解 + 原理)
    HTML做一个简单漂亮的宠物网页(纯html代码)
    Python去除中文文本中的特殊字符
    webpack5 CssMinimizerPlugin css压缩
    XSS靶场-DOM型初级关卡
    技术文档写作基础-写作新手必看
  • 原文地址:https://blog.csdn.net/wangzhongshun/article/details/136709315