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

目录

  • 一、网络权限设置
  • 二、配置步骤
    • [1、在 AndroidManifest.xml 文件中添加网络权限声明](#1、在 AndroidManifest.xml 文件中添加网络权限声明)
    • [2、在 AndroidManifest.xml 文件中的 application 节点下配置网络安全策略](#2、在 AndroidManifest.xml 文件中的 application 节点下配置网络安全策略)

一、网络权限设置

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

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

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

二、配置步骤

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

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

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<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>

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

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

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<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>

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

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

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

注意事项:

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

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

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<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>

network_security_config.xml

xml 复制代码
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">com.xxx</domain>
    </domain-config>
</network-security-config>

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

相关推荐
没什么本事24 分钟前
关于C# panel 添加lable问题 -- 明确X和Y 位置错误
android·java·c#
m0_738120722 小时前
ctfshow靶场SSRF部分——基础绕过到协议攻击解题思路与技巧(一)
服务器·前端·网络·安全·php
现代野蛮人2 小时前
【深度学习】 —— VGG-16 网络实现猫狗识别
网络·人工智能·python·深度学习·tensorflow
2301_780789662 小时前
“数字珍珠港”再现:西北能源基地DNS篡改事件深度复盘与防护升级
运维·服务器·网络·tcp/ip·网络安全·智能路由器·能源
S1998_1997111609•X2 小时前
针对犯罪集团etc/all,pid,IP的规划及量化逻辑原理
网络·安全·百度·缓存·量子计算
徐子元竟然被占了!!3 小时前
摄像头安全策略
网络
REDcker4 小时前
Android HWASan 详解:硬件标记原理、Clang 启用与排障实践
android·linux·debug·编译·clang·asan·hwasan
Zzzzmo_4 小时前
【网络编程】套接字
网络·套接字
国科安芯4 小时前
AS32S601 抗辐射 MCU 在星载高速光通信链路的集成设计与性能验证
网络·单片机·嵌入式硬件·risc-v·安全性测试
2501_915909064 小时前
全面解析前端开发中常用的浏览器调试工具及其使用场景
android·ios·小程序·https·uni-app·iphone·webview