美文网首页
安卓10适配

安卓10适配

作者: 程序猿的小生活 | 来源:发表于2021-05-09 11:29 被阅读0次

    1.安卓10获取不到IMEI信息,使用以下代码获取

     public  String getIMEIDeviceId(Context context) {
    
            String deviceId;
    
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
            {
                deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
            } else {
                final TelephonyManager mTelephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    if (context.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
                        return "";
                    }
                }
                assert mTelephony != null;
                if (mTelephony.getDeviceId() != null)
                {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
                    {
                        deviceId = mTelephony.getImei();
                    }else {
                        deviceId = mTelephony.getDeviceId();
                    }
                } else {
                    deviceId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);
                }
            }
            Log.d("deviceId", deviceId);
            return deviceId;
        }
    

    2.安卓10获取不到系统文件解决方法,在manifest.xml中的Application标签中加入下面的配置,此属性仅在API29及以上可使用

     <application
            android:requestLegacyExternalStorage="true">
    
    

    3.安卓10之后侧滑菜单使用androidx.drawerlayout.widget.DrawerLayout
    4.Http请求失败
    (1)添加网络安全配置。首先在 res 目录下新建xml文件夹,添加network_security_config.xml文件:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true" />
    </network-security-config>
    

    (2)AndroidManifest.xml中的application添加:

    <manifest ... >
        <application android:networkSecurityConfig="@xml/network_security_config">
                ...
        </application>
    </manifest>
    

    (3)以上这是一种简单粗暴的配置方法,要么支持http,要么不支持http。为了安全灵活,我们可以指定支持的http域名:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <!-- Android 9.0 上部分域名时使用 http -->
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">aaa.example.com</domain>
        </domain-config>
    </network-security-config>
    

    5.Apache HTTP 客户端弃用,Android 9.0 开始,默认情况下该库已从 bootclasspath 中移除,如果想使用,需要在应用的 AndroidManifest.xml 文件中添加:

    <manifest ... >
        <application>
            <uses-library android:name="org.apache.http.legacy" android:required="false"/>
                ...
        </application>
    </manifest>
    

    相关文章

      网友评论

          本文标题:安卓10适配

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