android版本适配

Android 6 权限适配

Android 7适配 FileProvider 删除隐式广播

Android 8.0 适配 

自适应启动图标 

安装APK,允许未知来源

 集合的处理 判空处理

通知适配

悬浮窗适配

Android9.0适配

刘海屏API支持

前台服务需要添加权限

限制静态广播的接收

非全屏透明Activity禁用设置orientation

非 SDK 接口访问限制

非Activity-Context启动Activity,现在强制执行 FLAG_ACTIVITY_NEW_TASK要求

设备识别码

http网络请求

Android 10适配

存储权限

Android 11

强制执行分区存储

修改电话权限,改动了两个API:getLine1Number()和 getMsisdn() ,需要加上READ_PHONE_NUMBERS权限
不允许自定义toast从后台显示了
必须加上v2签名
增加5g相关API
后台位置访问权限再次限制

<think>好的,用户现在想了解在高版本Android中如何适配HTTP请求。我需要结合之前的回答和用户提供的引用资料来整理解决方案。首先,用户提到的引用[3]指出,Android 9.0及以上默认禁止明文HTTP请求,所以需要明确适配这一点。 首先,用户之前的问题是关于发送JSON POST请求的,现在转向网络请求的适配,可能他们在实际开发中遇到了高版本无法发送HTTP请求的问题。需要分版本说明适配方法,比如针对Android 9(API 28)和Android 10(API 29)及以上。 引用[3]中提到,如果应用使用HTTP而非HTTPS,系统会禁止请求。解决方法是在res/xml下创建network_security_config.xml文件,设置cleartextTrafficPermitted为true,并在AndroidManifest中应用这个配置。同时,对于Android 10及以上,可能还需要在清单文件中添加usesCleartextTraffic属性。 另外,用户提供的引用[1]提到将SCHEME_HTTPS改为HTTP,但这可能不安全,应该推荐使用网络安全配置而不是直接修改协议。此外,引用[2]和[4]涉及文件提供者和安装权限,虽然和HTTP适配无关,但需要注意用户可能混淆了不同适配问题,需保持回答的针对性。 需要分步骤说明适配方法,包括网络安全配置、清单文件设置,以及WebView的特殊处理。同时,要提到Android 6.0引入的Cleartext Network Traffic配置,确保覆盖不同版本的变化。可能用户在使用OkHttp或HttpURLConnection时需要不同的处理,但之前的回答已经给出代码示例,这里可以简要提及。 还要考虑用户是否需要兼容低版本,例如在网络安全配置中使用domain includeSubdomains,并解释各个配置项的作用。最后,强调推荐使用HTTPS,并说明为什么明文HTTP不安全,以符合最佳实践。 需要检查是否有遗漏的适配点,例如Android 10之后的限制是否有变化,是否需要其他权限或配置。确保步骤清晰,代码示例正确,并引用正确的文献来源,如引用[3]和[1]中的内容。可能用户遇到的问题是因为targetSdkVersion升级导致的,需要提醒他们在构建时检查目标SDK版本。 总结:整理高版本适配HTTP的方法,分版本说明,提供代码和配置示例,强调安全建议,并链接相关引用资料。</think>### Android版本HTTP请求适配方法(针对Android 9.0+) 根据引用[3]的描述,从Android 9(API 28)开始系统默认禁止明文HTTP请求[^3],以下是完整适配方案: #### 一、基础适配方案(Android 9.0+) 1. **配置网络安全策略** ```xml <!-- res/xml/network_security_config.xml --> <network-security-config> <!-- 允许所有域名使用HTTP --> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config> ``` 2. **应用安全配置到清单文件** ```xml <!-- AndroidManifest.xml --> <application android:networkSecurityConfig="@xml/network_security_config" android:usesCleartextTraffic="true"> <!-- 针对Android 10+ --> </application> ``` #### 二、精准域名适配(推荐方案) ```xml <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">api.example.com</domain> <domain includeSubdomains="true">cdn.example.net</domain> </domain-config> </network-security-config> ``` #### 三、WebView适配(引用[3]场景) ```java // 启用混合内容加载(Android 5.0+) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } ``` #### 四、针对不同SDK版本的兼容处理 | Android版本 | 适配要点 | |------------|----------| | 6.0+ (API 23) | 引入`android:usesCleartextTraffic`属性 | | 9.0+ (API 28) | 默认禁止HTTP请求[^3] | | 10.0+ (API 29) | 强制要求声明网络权限 | #### 五、开发注意事项 1. **OkHttp特殊配置** ```java OkHttpClient client = new OkHttpClient.Builder() .connectionSpecs(Arrays.asList( ConnectionSpec.MODERN_TLS, ConnectionSpec.CLEARTEXT)) // 允许明文流量 .build(); ``` 2. **构建配置要求** ```groovy // build.gradle android { compileSdkVersion 34 defaultConfig { targetSdkVersion 34 // 必须≥28才能触发安全策略 } } ``` #### 六、安全建议(引用[1]启示) 虽然可以通过修改`SCHEME_HTTPS`强制使用HTTP[^1],但**强烈建议**: 1. 优先使用HTTPS协议 2. 仅对测试环境开放HTTP 3. 生产环境配置有效的SSL证书 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值