<?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.dlc.eboard">

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.USES_POLICY_FORCE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <uses-feature android:name="android.hardware.camera.any" />

    <!--连接网络权限，用于执行云端语音能力 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!--获取手机录音机使用权限，听写、识别、语义理解需要用到此权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <!--读取网络信息状态 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--获取当前wifi状态 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允许程序改变网络连接状态 -->
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <!--读取手机信息权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--读取联系人权限，上传联系人需要用到此权限 -->
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <!--外存储写权限，构建语法需要用到此权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--外存储读权限，构建语法需要用到此权限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!--配置权限，用来记录应用配置信息 -->
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <!--手机定位信息，用来为语义等功能提供定位，提供更精准的服务-->
    <!--定位信息是敏感信息，可通过Setting.setLocationEnable(false)关闭定位请求 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <!--如需使用人脸识别，还要添加：摄相头权限，拍照需要用到 -->
    <uses-permission android:name="android.permission.CAMERA" />

    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <uses-permission
        android:name="android.hardware.usb.host"
        android:required="false" />

    <application
        android:name=".LabApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:requestLegacyExternalStorage="true"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/Theme.AppFullTheme"
        android:usesCleartextTraffic="true"
        tools:targetApi="m">

        <receiver android:name=".broadcast.BootBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>

        <activity
            android:name=".ui.SplashActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".ui.HomeActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:launchMode="singleTask"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.MainActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:launchMode="singleTask"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.LabMainActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:launchMode="singleTask"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.rule.SafetyRegulationActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.guide.GuideActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.things.ThingsActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.risk.RiskActivity"
            android:configChanges="orientation|keyboardHidden|navigation|screenSize"
            android:hardwareAccelerated="true"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.sign.SignInActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.leave.LeaveActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.settings.SettingsActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.settings.ScanSettingsActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.msds.InstructionActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.person.LaboratoryPersonActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.lib.LabDetailActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.rule.SafetyRegulationDetailActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.common.HtmlFullScreenActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.things.SelectAuthMethodActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.notice.NoticeActivity"
            android:launchMode="singleTop"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.lib.LabDescActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.monitor.MonitorListActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.monitor.MonitorFullScreenActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.auth.FourChoiceAuthActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.auth.TwoChoiceAuthActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.auth.FingerAuthActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.auth.DualAuthActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.finger.FingerEnrollActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.finger.EnrollAuthActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name=".ui.finger.SelectFingerActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.lib.ExLabDetailActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.rule.ExSafetyRegulationActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.msds.ExInstructionActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.risk.ExRiskActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.person.ExLaboratoryPersonActivity"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.sign.ExSignInActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <activity
            android:name="com.dlc.laboratory.ui.leave.ExLeaveActivity"
            android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale"
            android:screenOrientation="landscape"
            android:windowSoftInputMode="adjustPan" />

        <service
            android:name=".ui.HeartService"
            android:enabled="true"
            android:exported="false" />

        <service
            android:name=".mqtt.MqttService"
            android:enabled="true"
            android:exported="false" />

        <service
            android:name=".mqtt.AudioService"
            android:enabled="true"
            android:exported="false" />

        <service
            android:name=".serial.SerialPortService"
            android:enabled="true"
            android:exported="false" />

        <service
            android:name=".finger.FingerService"
            android:enabled="true"
            android:exported="false" />

        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths_public" />
        </provider>

        <receiver android:name=".receiver.OpenApkReceiver">
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_REPLACED" />
                <data android:scheme="${applicationId}" />
            </intent-filter>
        </receiver>

        <service
            android:name="com.tencent.smtt.export.external.DexClassLoaderProviderService"
            android:label="dexopt"
            android:process=":dexopt" />

    </application>

</manifest>