Android 版本适配:9.0

一:老旧项目在 9.0手机上老弹出 Dialog

解决办法:

private void closeAndroidPDialog(){
    try {
        Class aClass = Class.forName("android.content.pm.PackageParser$Package");
        Constructor declaredConstructor = aClass.getDeclaredConstructor(String.class);
        declaredConstructor.setAccessible(true);
    } catch (Exception e) {
        e.printStackTrace();
    }
    try {
        Class cls = Class.forName("android.app.ActivityThread");
        Method declaredMethod = cls.getDeclaredMethod("currentActivityThread");
        declaredMethod.setAccessible(true);
        Object activityThread = declaredMethod.invoke(null);
        Field mHiddenApiWarningShown = cls.getDeclaredField("mHiddenApiWarningShown");
        mHiddenApiWarningShown.setAccessible(true);
        mHiddenApiWarningShown.setBoolean(activityThread, true);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

二:适配网络请求

9.0要求使用安全的网络访问,如果项目使用的是http请求方式而非https,请求会失败。
解决方案:
一、APP改用https请求

这种方式需要接口去协调,把请求域名改为https。

二、targetSdkVersion 降到27以下

三、在 res 下新增一个 xml 目录,然后创建一个名为:network_security_config.xml 文件(名字自定) ,内容如下,大概意思就是允许开启http请求。

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

android:networkSecurityConfig="@xml/network_security_config"

新增问题:上一个 xml 的配置只是解决了自己应用使用 okhhtp3 的问题。现在发现 OSS 上传图片也无法成功,一样是因为不安全的网络访问导致的,把 xml 文件的写法改成这样:

需要注意的是:你的服务端接口地址不要加 http:// 前缀,如果是 ip 地址,还不能加端口号。 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值