• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            android觸摸屏idc,Androididc文件配置

            更新時間:2023-06-03 13:47:40 閱讀: 評論:0

            android觸摸屏idc,Androididc?件配置
            1.idc是什么?
            idc 是Input Device Configuration的縮寫,輸?設備配置?件(.idc ?件)包含特定設備的配置屬性,這些屬性會影響輸?設備的?為。
            輸?設備配置?件通常并?標準外圍設備(例如 HID 鍵盤和?標)所必需的,因為默認的系統?為通常可確保它們即插即?。另???,內置的嵌?式設備(尤其是觸摸屏)?乎總是需要輸?設備配置?件來指定其?為。
            2.idc位置按順序查閱以下路徑。
            /odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
            /vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
            /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
            /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
            /
            odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
            /vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
            /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
            /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
            /odm/usr/idc/device-name.idc
            /vendor/usr/idc/device-name.idc
            /system/usr/idc/device-name.idc
            /data/system/devices/idc/device-name.idc
            當構建包含設備名稱的?件路徑時,設備名稱中除“0-9”、“a-z”、“A-Z”、“-”或“_”之外的所有字符將替換為“_”。
            3.idc?件常?配置屬性
            #=0 外部設備 =1內部設備
            device.internal = 0
            #定義:keyboard.layout = #指定與輸?設備關聯的鍵布局?件的名稱,不包括.kl擴展名。 如果找不到此?件,輸?系統將使?默認鍵布局。
            keyboard.layout = qwerty
            #定義:keyboard.characterMap = #指定與輸?設備關聯的鍵字符映射?件的名稱,不包括.kcm擴展名。 如果找不到此?件,輸?系統將使?默認的鍵字符映射。
            #在查找期間,名稱中的空格將轉換為下劃線。
            keyboard.characterMap = qwerty
            #定義:ientationAware = 0 |1
            #指定鍵盤是否應對顯??向更改做出反應。
            #如果值為1,則在關聯的顯??向改變時旋轉?向鍵盤鍵。
            #如果值為0,則鍵盤不受顯??向更改的影響。
            #默認值為0。
            #?向感知?于?持?向鍵盤鍵的旋轉,例如Motorola Droid上的旋轉。 例如,當設備從其?然?向順時針旋轉90度時,
            #KEYCODE_DPAD_UP被重新映射以產?KEYCODE_DPAD_RIGHT,因為當設備保持在該?向時,“向上”鍵最終指向“右”。
            #定義:keyboard.builtIn = 0 |1
            #指定鍵盤是否為內置(物理連接)鍵盤。
            #如果設備名稱以-keypad結尾,則默認值為1,否則為0。
            #內置鍵盤的設備ID始終為0.其他?內置鍵盤將分配唯?的?零設備ID。
            #對于內置鍵盤使?id為0對于保持與KeyCharacterMap.BUILT_IN_KEYBOARD字段的兼容性?常重要,該字段指定內置鍵盤的id并且值為0.
            #此字段已在API中棄?但較舊 應?程序可能仍在使?它。
            #?論此屬性的設置如何,特殊功能鍵盤(其鍵字符映射指定SPECIAL_FUNCTION的類型)將永遠不會注冊為內置鍵盤。
            #這是因為根據定義,特殊功能鍵盤不打算?于通?鍵?。
            keyboard.builtIn = 1
            4.idc代碼流程
            Eventhub在打開設備時會讀取設備的idc?件
            ->Eventhub.openDeviceLocked->loadConfigurationLocked
            void EventHub::loadConfigurationLocked(Device* device) {
            device->configurationFile = getInputDeviceConfigurationFilePathByDeviceIdentifier(
            device->identifier, INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION);
            if (device->configurationFile.isEmpty()) {
            ALOGD("No input device configuration file found for device '%s'.",
            device->identifier.name.string());
            } el {
            status_t status = PropertyMap::load(device->configurationFile,
            &device->configuration);
            if (status) {
            ALOGE("Error loading input device configuration file for device '%s'.? "
            "Using default configuration.",
            device->identifier.name.string());
            }
            }
            }
            idc?件的加載順序如下,如果找到了idc?件則直接返回不會再加載后?的idc?件
            Vendor_XXXX_Product_XXXX_Version_XXXX.idc
            Vendor_XXXX_Product_XXXX.idc
            device-name.idc
            String8 getInputDeviceConfigurationFilePathByDeviceIdentifier(
            const InputDeviceIdentifier& deviceIdentifier,
            InputDeviceConfigurationFileType type) {
            if (deviceIdentifier.vendor !=0 && deviceIdentifier.product != 0) {
            if (deviceIdentifier.version != 0) {
            // Try vendor product version.
            String8 versionPath(getInputDeviceConfigurationFilePathByName(
            String8::format("Vendor_%04x_Product_%04x_Version_%04x", deviceIdentifier.vendor, deviceIdentifier.product,
            deviceIdentifier.version),
            type));
            if (!versionPath.isEmpty()) {
            return versionPath;
            }
            }
            // Try vendor product.
            String8 productPath(getInputDeviceConfigurationFilePathByName(
            String8::format("Vendor_%04x_Product_%04x",
            deviceIdentifier.vendor, deviceIdentifier.product),
            type));
            if (!productPath.isEmpty()) {
            return productPath;
            }
            }
            // Try device name.
            return getInputDeviceConfigurationFilePathByName(deviceIdentifier.name, type); }
            String8 getInputDeviceConfigurationFilePathByName(
            const String8& name, InputDeviceConfigurationFileType type) {
            // Search system repository.
            String8 path;
            path.tTo(getenv("ANDROID_ROOT"));
            path.append("/usr/");
            appendInputDeviceConfigurationFileRelativePath(path, name, type);
            #if DEBUG_PROBE
            ALOGD("Probing for system provided input device configuration file: path='%s'", path.string()); #endif
            if (!access(path.string(), R_OK)) {
            #if DEBUG_PROBE
            ALOGD("Found");
            #endif
            return path;
            }
            // Search ur repository.
            // TODO Should only look here if not in safe mode.
            path.tTo(getenv("ANDROID_DATA"));
            path.append("/system/devices/");
            appendInputDeviceConfigurationFileRelativePath(path, name, type);
            #if DEBUG_PROBE
            ALOGD("Probing for system ur input device configuration file: path='%s'", path.string());
            #endif
            if (!access(path.string(), R_OK)) {
            #if DEBUG_PROBE
            ALOGD("Found");
            #endif
            return path;
            }
            // Not found.
            #if DEBUG_PROBE
            ALOGD("Probe failed to find input device configuration file: name='%s', type=%d",
            name.string(), type);
            #endif
            return String8();
            }
            參考博客:

            本文發布于:2023-06-03 13:47:40,感謝您對本站的認可!

            本文鏈接:http://www.newhan.cn/zhishi/a/168577126064393.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:android觸摸屏idc,Androididc文件配置.doc

            本文 PDF 下載地址:android觸摸屏idc,Androididc文件配置.pdf

            標簽:設備   鍵盤   名稱   內置   指定   配置   字符   默認
            留言與評論(共有 0 條評論)
               
            驗證碼:
            推薦文章
            排行榜
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 国产精品久久综合桃花网| 999在线视频精品免费播放观看| 久久精品99国产精品亚洲| 亚洲日本va午夜在线影院| 四虎影视一区二区精品| 欧美成本人视频免费播放| 天堂亚洲免费视频| 国产精品一码二码三码| 日本又黄又爽gif动态图| 久久一级黄色大片免费观看| 国产一区二区av天堂热| 97精品人妻系列无码人妻| 国产盗摄xxxx视频xxxx| 国产jizz中国jizz免费看| 韩国无码AV片午夜福利| 亚洲av午夜精品一区二区三区| 熟女系列丰满熟妇AV| 日韩激情电影一区二区在线| 国产成人综合久久亚洲精品 | 激动网视频| 国产性三级高清在线观看| 亚洲成年av天堂动漫网站| 国产成人片无码视频| 欧美拍拍视频免费大全| 欧美人与zoxxxx另类| 18禁裸乳无遮挡啪啪无码免费| 久久精品国产999大香线焦| 久久精品第九区免费观看| 日韩美女av二区三区四区| 国产精品国产三级国快看| 亚洲AV一二三区成人影片| 少妇人妻偷人精品系列| 日本丰滿岳乱DVD| 国产精品国产精品国产精品| 思思久99久女女精品| 91久久精品国产性色也| 国产视色精品亚洲一区二区| 免费无遮挡毛片中文字幕| 久久夜色精品国产亚av| 免费黄色大全一区二区三区| 国产丝袜在线精品丝袜不卡|