دستگاه های صفحه کلید

اندروید از انواع دستگاه‌های صفحه‌کلید از جمله صفحه‌کلیدهای عملکردی ویژه (کنترل‌های صدا و پاور)، صفحه‌کلیدهای QWERTY جاسازی‌شده فشرده، و صفحه‌کلیدهای خارجی کاملاً مجهز به سبک رایانه شخصی پشتیبانی می‌کند.

این سند فقط صفحه کلیدهای فیزیکی را توصیف می کند. برای اطلاعات در مورد صفحه کلیدهای نرم (ویرایشگرهای روش ورودی) به Android SDK مراجعه کنید.

طبقه بندی صفحه کلید

اگر یکی از شرایط زیر برقرار باشد، یک دستگاه ورودی به عنوان صفحه کلید طبقه بندی می شود:

  • دستگاه ورودی وجود هرگونه کد کلید لینوکس مورد استفاده در صفحه کلید را گزارش می دهد، از جمله 0 تا 0xff یا KEY_OK تا KEY_MAX .

  • دستگاه ورودی وجود هرگونه کد کلید لینوکس مورد استفاده در جوی استیک ها و گیم پدها از جمله BTN_0 تا BTN_9 ، BTN_TRIGGER تا BTN_DEAD ، یا BTN_A از طریق BTN_THUMBR را گزارش می دهد.

جوی استیک‌ها در حال حاضر به‌عنوان صفحه‌کلید طبقه‌بندی می‌شوند، زیرا دکمه‌های جوی استیک و گیم‌پد توسط رویدادهای EV_KEY به همان روشی که کلیدهای صفحه‌کلید گزارش می‌شوند، گزارش می‌شوند. بنابراین جوی استیک ها و گیم پدها نیز از فایل های نقشه کلیدی برای پیکربندی استفاده می کنند.

هنگامی که یک دستگاه ورودی به عنوان صفحه کلید طبقه بندی شد، سیستم فایل پیکربندی دستگاه ورودی و طرح صفحه کلید را برای صفحه کلید بارگیری می کند.

سپس سیستم سعی می کند ویژگی های اضافی دستگاه را تعیین کند.

  • اگر دستگاه ورودی دارای کلیدهایی باشد که با KEYCODE_Q نگاشت شده است، دستگاه دارای صفحه کلید الفبایی (برخلاف عددی) در نظر گرفته می شود. قابلیت صفحه کلید الفبایی در شیء Configuration منبع به عنوان KEYBOARD_QWERTY گزارش شده است.

  • اگر دستگاه ورودی دارای کلیدهایی باشد که با KEYCODE_DPAD_UP ، KEYCODE_DPAD_DOWN ، KEYCODE_DPAD_LEFT ، KEYCODE_DPAD_RIGHT ، و KEYCODE_DPAD_CENTER نگاشت شده اند (همه باید وجود داشته باشند)، آنگاه دستگاه دارای صفحه کلید جهت دار در نظر گرفته می شود. قابلیت صفحه کلید جهت دار در شیء Configuration منبع به عنوان NAVIGATION_DPAD گزارش شده است.

  • اگر دستگاه ورودی دارای کلیدهایی باشد که با KEYCODE_BUTTON_A یا سایر کلیدهای مربوط به گیم پد نگاشت شده باشد، آنگاه دستگاه دارای یک گیم پد در نظر گرفته می شود.

الزامات درایور صفحه کلید

  1. درایورهای صفحه کلید فقط باید کدهای کلیدی را برای کلیدهایی که واقعاً پشتیبانی می کنند ثبت کنند. ثبت کدهای کلید اضافی ممکن است الگوریتم طبقه بندی دستگاه را اشتباه گرفته یا باعث شود سیستم قابلیت های صفحه کلید پشتیبانی شده دستگاه را به اشتباه تشخیص دهد.

  2. درایورهای صفحه کلید باید از EV_KEY برای گزارش فشار دادن کلید استفاده کنند، از مقدار 0 برای نشان دادن آزاد شدن یک کلید، مقدار 1 برای نشان دادن فشار دادن یک کلید، و مقدار بزرگتر یا مساوی 2 برای نشان دادن اینکه کلید است استفاده کنند. به طور خودکار تکرار می شود

  3. اندروید تکرار صفحه کلید خود را انجام می دهد. عملکرد تکرار خودکار باید در درایور غیرفعال شود.

  4. درایورهای صفحه کلید ممکن است به صورت اختیاری استفاده از HID یا کد اسکن سطح پایین را با ارسال EV_MSC با MSC_SCANCODE و مقداری که نشان‌دهنده استفاده یا کد اسکن هنگام فشار دادن کلید است، نشان دهند. این اطلاعات در حال حاضر توسط Android استفاده نمی شود.

  5. درایورهای صفحه کلید باید از تنظیم حالت LED در هنگام نوشته شدن EV_LED روی دستگاه پشتیبانی کنند. درایور hid-input به طور خودکار این کار را انجام می دهد. در زمان نوشتن این مقاله، Android از LED_CAPSLOCK ، LED_SCROLLLOCK و LED_NUMLOCK استفاده می‌کند. این LED ها فقط زمانی نیاز به پشتیبانی دارند که صفحه کلید واقعاً دارای چراغ های نشانگر مرتبط باشد.

  6. درایورهای صفحه‌کلید برای صفحه‌کلیدهای تعبیه‌شده (مثلاً با استفاده از ماتریس GPIO) باید مطمئن شوند که رویدادهای EV_KEY را با مقدار 0 برای هر کلیدی که هنوز فشار داده می‌شود هنگام خواب دستگاه ارسال می‌کنند. در غیر این صورت ممکن است کلیدها گیر کنند و برای همیشه به طور خودکار تکرار شوند.

عملکرد صفحه کلید

در زیر خلاصه ای از عملکرد صفحه کلید در اندروید آمده است.

  1. EventHub رویدادهای خام را از درایور evdev می خواند و کدهای کلید لینوکس (گاهی اوقات به عنوان کدهای اسکن نامیده می شود) را با استفاده از نقشه چیدمان کلید صفحه کلید در کدهای کلید Android ترسیم می کند.

  2. InputReader رویدادهای خام را مصرف می کند و حالت متا کلید را به روز می کند. به عنوان مثال، اگر کلید Shift چپ فشرده یا رها شود، خواننده بیت‌های META_SHIFT_LEFT_ON و META_SHIFT_ON را بر اساس آن تنظیم یا بازنشانی می‌کند.

  3. InputReader به InputDispatcher در مورد رویداد کلیدی اطلاع می دهد.

  4. InputDispatcher از WindowManagerPolicy می پرسد که با فراخوانی WindowManagerPolicy.interceptKeyBeforeQueueing با رویداد کلیدی چه کاری انجام دهد. این روش بخشی از یک مسیر حیاتی است که وظیفه بیدار کردن دستگاه را در هنگام فشار دادن کلیدهای خاصی بر عهده دارد. EventHub به طور موثر در طول این مسیر حیاتی یک wake lock را نگه می‌دارد تا از تکمیل آن اطمینان حاصل کند.

  5. اگر یک InputFilter در حال حاضر استفاده می شود، InputDispatcher به آن فرصتی می دهد تا کلید را مصرف کند یا تغییر دهد. InputFilter ممکن است برای اجرای خط‌مشی‌های سطح پایین دسترسی در سطح سیستم استفاده شود.

  6. InputDispatcher کلید را برای پردازش در رشته اعزام قرار می دهد.

  7. هنگامی که InputDispatcher کلید را از صف خارج می کند، به WindowManagerPolicy فرصتی دوباره می دهد تا با فراخوانی WindowManagerPolicy.interceptKeyBeforeDispatching رویداد کلید را رهگیری کند. این روش میانبرهای سیستم و سایر عملکردها را مدیریت می کند.

  8. سپس InputDispatcher هدف رویداد کلیدی (پنجره متمرکز) را شناسایی می کند و منتظر می ماند تا آنها آماده شوند. سپس، InputDispatcher رویداد کلیدی را به برنامه تحویل می دهد.

  9. در داخل برنامه، رویداد کلید سلسله مراتب مشاهده را به نمای متمرکز برای ارسال کلید قبل از IME منتشر می کند.

  10. اگر رویداد کلید در ارسال قبل از IME مدیریت نشود و یک IME در حال استفاده باشد، رویداد کلید به IME تحویل داده می شود.

  11. اگر رویداد کلید توسط IME مصرف نشده باشد، رویداد کلیدی سلسله مراتب مشاهده را به نمای متمرکز برای ارسال کلید استاندارد منتشر می کند.

  12. برنامه به InputDispatcher گزارش می دهد که آیا رویداد کلیدی مصرف شده است یا خیر. اگر رویداد مصرف نشده باشد، InputDispatcher WindowManagerPolicy.dispatchUnhandledKey را برای اعمال رفتار "fallback" فراخوانی می کند. بسته به عمل برگشتی، چرخه ارسال رویداد کلید ممکن است با استفاده از یک کد کلید متفاوت دوباره راه اندازی شود. برای مثال، اگر یک برنامه کاربردی KEYCODE_ESCAPE مدیریت نکند، سیستم ممکن است رویداد کلید را به‌عنوان KEYCODE_BACK دوباره ارسال کند.

پیکربندی صفحه کلید

رفتار صفحه کلید با چیدمان کلید صفحه کلید، نقشه کاراکتر کلید و پیکربندی دستگاه ورودی تعیین می شود.

برای جزئیات بیشتر در مورد فایل هایی که در پیکربندی صفحه کلید شرکت می کنند به بخش های زیر مراجعه کنید:

خواص

ویژگی های پیکربندی دستگاه ورودی زیر برای صفحه کلید استفاده می شود.

صفحه کلید.طرح بندی

تعریف: keyboard.layout = <name>

نام فایل طرح بندی کلید مرتبط با دستگاه ورودی را به استثنای پسوند .kl مشخص می کند. اگر این فایل پیدا نشد، سیستم ورودی به جای آن از طرح بندی کلید پیش فرض استفاده می کند.

فاصله های نام در حین جستجو به زیرخط تبدیل می شوند.

برای جزئیات بیشتر به مستندات فایل طرح بندی کلید مراجعه کنید.

keyboard.characterMap

تعریف: keyboard.characterMap = <name>

نام فایل نقشه نویسه های کلیدی مرتبط با دستگاه ورودی را به استثنای پسوند .kcm مشخص می کند. اگر این فایل پیدا نشد، سیستم ورودی به جای آن از نقشه کاراکتر کلید پیش‌فرض استفاده می‌کند.

فاصله های نام در حین جستجو به زیرخط تبدیل می شوند.

برای جزئیات بیشتر به مستندات فایل نقشه کاراکتر کلیدی مراجعه کنید.

keyboard.orientationAware

تعریف: keyboard.orientationAware = 0 | 1

مشخص می کند که آیا صفحه کلید باید به تغییرات جهت نمایش واکنش نشان دهد یا خیر.

  • اگر مقدار 1 باشد، هنگام تغییر جهت نمایش مربوطه، کلیدهای صفحه کلید جهتی می چرخند.

  • اگر مقدار 0 باشد، صفحه کلید از تغییرات جهت نمایش مصون است.

مقدار پیش فرض 0 است.

آگاهی جهت گیری برای پشتیبانی از چرخش کلیدهای صفحه کلید جهت دار، مانند موتورولا دروید، استفاده می شود. به عنوان مثال، هنگامی که دستگاه در جهت عقربه‌های ساعت 90 درجه از جهت طبیعی خود می‌چرخد، KEYCODE_DPAD_UP برای تولید KEYCODE_DPAD_RIGHT مجدداً نقشه‌برداری می‌شود، زیرا وقتی دستگاه در آن جهت نگه داشته می‌شود، کلید «بالا» به سمت «راست» می‌رود.

صفحه کلید.ساخته شده

تعریف: keyboard.builtIn = 0 | 1

مشخص می کند که آیا صفحه کلید صفحه کلید داخلی (از لحاظ فیزیکی متصل شده) است یا خیر.

اگر نام دستگاه با -keypad ختم شود، مقدار پیش‌فرض 1 است، در غیر این صورت 0 .

به صفحه کلید داخلی همیشه یک شناسه دستگاه 0 اختصاص داده می شود. سایر صفحه‌کلیدهایی که داخلی نیستند، شناسه‌های دستگاه منحصربه‌فرد غیرصفری دارند.

استفاده از شناسه 0 برای صفحه کلید داخلی برای حفظ سازگاری با فیلد KeyCharacterMap.BUILT_IN_KEYBOARD ، که شناسه صفحه کلید داخلی را مشخص می کند و دارای مقدار 0 است، مهم است. این فیلد در API منسوخ شده است، اما ممکن است برنامه‌های قدیمی‌تر همچنان از آن استفاده کنند.

یک صفحه‌کلید با عملکرد خاص (یکی که نقشه کاراکترهای کلیدی آن یک نوع SPECIAL_FUNCTION را مشخص می‌کند) بدون در نظر گرفتن تنظیمات این ویژگی، هرگز به‌عنوان صفحه‌کلید داخلی ثبت نمی‌شود. این به این دلیل است که یک صفحه کلید با عملکرد خاص بنا به تعریف برای استفاده برای تایپ کردن با هدف عمومی در نظر گرفته نشده است.

تنظیمات نمونه

# This is an example input device configuration file for a built-in
# keyboard that has a DPad.

# The keyboard is internal because it is part of the device.
device.internal = 1

# The keyboard is the default built-in keyboard so it should be assigned
# an id of 0.
keyboard.builtIn = 1

# The keyboard includes a DPad which is mounted on the device.  As the device
# is rotated the orientation of the DPad rotates along with it, so the DPad must
# be aware of the display orientation.  This ensures that pressing 'up' on the
# DPad always means 'up' from the perspective of the user, even when the entire
# device has been rotated.
keyboard.orientationAware = 1

یادداشت های سازگاری

قبل از Honeycomb، نقشه‌بردار ورودی صفحه‌کلید از هیچ ویژگی پیکربندی استفاده نمی‌کرد. فرض بر این بود که همه صفحه‌کلیدها از نظر فیزیکی متصل هستند و از جهت‌گیری آگاه هستند. طرح بندی کلید پیش فرض و نقشه کاراکتر کلید به جای Generic qwerty نامگذاری شد. قالب نقشه کاراکترهای کلیدی نیز بسیار متفاوت بود و چارچوب از صفحه کلید کامل به سبک رایانه شخصی یا صفحه کلید خارجی پشتیبانی نمی کرد.

هنگام ارتقای دستگاه ها به Honeycomb، مطمئن شوید که پیکربندی و فایل های نقشه کلیدی لازم را ایجاد یا به روز کنید.

موارد استفاده HID، کدهای کلید لینوکس و کدهای کلید اندروید

این سیستم به کلیدهایی با استفاده از چندین شناسه مختلف، بسته به لایه انتزاعی، اشاره دارد.

برای دستگاه‌های HID، هر کلید یک کاربرد HID مرتبط دارد. درایور hid-input Linux و فروشنده مرتبط و درایورهای HID مخصوص دستگاه مسئول تجزیه گزارش‌های HID و نگاشت استفاده‌های HID به کدهای کلید لینوکس هستند.

همانطور که Android رویدادهای EV_KEY را از هسته لینوکس می خواند، هر کد کلید لینوکس را با توجه به فایل طرح بندی کلید دستگاه به کد کلید Android مربوطه خود ترجمه می کند.

هنگامی که رویداد کلید به یک برنامه ارسال می شود، نمونه android.view.KeyEvent کد کلید لینوکس را به عنوان مقدار getScanCode() و کد کلید Android را به عنوان مقدار getKeyCode() گزارش می کند. برای اهداف چارچوب، فقط مقدار getKeyCode() مهم است.

توجه داشته باشید که اطلاعات استفاده از HID توسط خود اندروید استفاده نمی شود و به برنامه ها منتقل نمی شود.

جداول کد

جداول زیر نحوه استفاده از HID، کدهای کلید لینوکس و کدهای کلید اندروید را نشان می دهد.

ستون LKC کد کلید لینوکس را به صورت هگزادسیمال مشخص می کند.

ستون AKC کد کلید اندروید را به صورت هگزادسیمال مشخص می کند.

ستون یادداشت ها به یادداشت هایی اشاره دارد که بعد از جدول ارسال می شوند.

ستون نسخه، اولین نسخه از پلتفرم اندروید را مشخص می کند که این کلید را در نقشه کلید پیش فرض خود گنجانده است. در مواردی که نقشه کلید پیش‌فرض بین نسخه‌ها تغییر کرده است، چندین ردیف نشان داده می‌شود. قدیمی ترین نسخه نشان داده شده 1.6 است.

  • در Gingerbread (2.3) و نسخه‌های قبلی، نقشه کلید پیش‌فرض qwerty.kl بود. این نقشه کلید فقط برای استفاده با شبیه ساز اندروید در نظر گرفته شده بود و برای پشتیبانی از صفحه کلیدهای خارجی دلخواه استفاده نمی شد. با این وجود، چند OEM پشتیبانی از صفحه کلید بلوتوث را به پلتفرم اضافه کردند و به qwerty.kl برای ارائه نگاشت های صفحه کلید لازم اعتماد کردند. در نتیجه این نقشه‌برداری‌های قدیمی‌تر ممکن است برای OEM‌هایی که در حال ساخت تجهیزات جانبی برای این دستگاه‌های خاص هستند، جالب باشد. توجه داشته باشید که نگاشت ها به طور قابل توجهی با موارد فعلی متفاوت است، به خصوص با توجه به درمان کلید HOME . توصیه می شود که تمام تجهیزات جانبی جدید مطابق با Honeycomb یا نقشه های کلیدی جدیدتر (یعنی HID استاندارد) توسعه داده شوند.

  • از Honeycomb (3.0)، نقشه کلید پیش‌فرض Generic.kl است. این نقشه کلید برای پشتیبانی از صفحه کلیدهای سبک کامل رایانه شخصی طراحی شده است. بیشتر عملکردهای صفحه کلید استاندارد HID باید خارج از جعبه باشد.

نگاشت کد کلید ممکن است در نسخه‌های هسته لینوکس و اندروید متفاوت باشد. هنگامی که تغییرات در نقشه های کلید پیش فرض اندروید رخ داده است، در ستون نسخه نشان داده می شوند.

درایورهای HID خاص دستگاه و نقشه‌های کلید ممکن است نگاشت‌های متفاوتی نسبت به آنچه در اینجا نشان داده شده است اعمال کنند.

صفحه کلید و صفحه کلید HID (0x07)

استفاده از HID نام استفاده از HID LKC نام کد کلید لینوکس نسخه AKC نام کد کلید اندروید یادداشت
0x07 0x0001 خطای صفحه کلید رول کردن
0x07 0x0002 صفحه کلید POST شکست خورد
0x07 0x0003 خطای صفحه کلید تعریف نشده است
0x07 0x0004 صفحه کلید a و A 0x001e KEY_A 1.6 0x001d KEYCODE_A 1
0x07 0x0005 صفحه کلید b و B 0x0030 KEY_B 1.6 0x001e KEYCODE_B 1
0x07 0x0006 صفحه کلید c و c 0x002e KEY_C 1.6 0x001f KEYCODE_C 1
0x07 0x0007 صفحه کلید d و D 0x0020 KEY_D 1.6 0x0020 KEYCODE_D 1
0x07 0x0008 صفحه کلید e و E 0x0012 KEY_E 1.6 0x0021 KEYCODE_E 1
0x07 0x0009 صفحه کلید f و F 0x0021 KEY_F 1.6 0x0022 KEYCODE_F 1
0x07 0x000a صفحه کلید g و G 0x0022 KEY_G 1.6 0x0023 KEYCODE_G 1
0x07 0x000b صفحه کلید h و اچ 0x0023 KEY_H 1.6 0x0024 KEYCODE_H 1
0x07 0x000c صفحه کلید من و من 0x0017 KEY_I 1.6 0x0025 KEYCODE_I 1
0x07 0x000d کیبورد j و جی 0x0024 KEY_J 1.6 0x0026 KEYCODE_J 1
0x07 0x000e صفحه کلید k و K 0x0025 KEY_K 1.6 0x0027 KEYCODE_K 1
0x07 0x000f صفحه کلید l و L 0x0026 KEY_L 1.6 0x0028 KEYCODE_L 1
0x07 0x0010 صفحه کلید m و M 0x0032 KEY_M 1.6 0x0029 KEYCODE_M 1
0x07 0x0011 صفحه کلید n و N 0x0031 KEY_N 1.6 0x002a KEYCODE_N 1
0x07 0x0012 صفحه کلید o و O 0x0018 KEY_O 1.6 0x002b KEYCODE_O 1
0x07 0x0013 صفحه کلید p و P 0x0019 KEY_P 1.6 0x002c KEYCODE_P 1
0x07 0x0014 صفحه کلید q و Q 0x0010 KEY_Q 1.6 0x002d KEYCODE_Q 1
0x07 0x0015 صفحه کلید r و R 0x0013 KEY_R 1.6 0x002e KEYCODE_R 1
0x07 0x0016 صفحه کلید s و S 0x001f KEY_S 1.6 0x002f KEYCODE_S 1
0x07 0x0017 صفحه کلید t و T 0x0014 KEY_T 1.6 0x0030 KEYCODE_T 1
0x07 0x0018 صفحه کلید تو و یو 0x0016 KEY_U 1.6 0x0031 KEYCODE_U 1
0x07 0x0019 صفحه کلید v و V 0x002f KEY_V 1.6 0x0032 KEYCODE_V 1
0x07 0x001a صفحه کلید w و W 0x0011 KEY_W 1.6 0x0033 KEYCODE_W 1
0x07 0x001b صفحه کلید x و X 0x002d KEY_X 1.6 0x0034 KEYCODE_X 1
0x07 0x001c صفحه کلید y و Y 0x0015 KEY_Y 1.6 0x0035 KEYCODE_Y 1
0x07 0x001d صفحه کلید z و Z 0x002c KEY_Z 1.6 0x0036 KEYCODE_Z 1
0x07 0x001e صفحه کلید 1 و ! 0x0002 KEY_1 1.6 0x0008 KEYCODE_1 1
0x07 0x001f صفحه کلید 2 و @ 0x0003 KEY_2 1.6 0x0009 KEYCODE_2 1
0x07 0x0020 صفحه کلید 3 و # 0x0004 KEY_3 1.6 0x000a KEYCODE_3 1
0x07 0x0021 صفحه کلید 4 و دلار 0x0005 KEY_4 1.6 0x000b KEYCODE_4 1
0x07 0x0022 صفحه کلید 5 و % 0x0006 KEY_5 1.6 0x000c KEYCODE_5 1
0x07 0x0023 صفحه کلید 6 و ^ 0x0007 KEY_6 1.6 0x000d KEYCODE_6 1
0x07 0x0024 صفحه کلید 7 و & 0x0008 KEY_7 1.6 0x000e KEYCODE_7 1
0x07 0x0025 صفحه کلید 8 و * 0x0009 KEY_8 1.6 0x000f KEYCODE_8 1
0x07 0x0026 صفحه کلید 9 و ( 0x000a KEY_9 1.6 0x0010 KEYCODE_9 1
0x07 0x0027 صفحه کلید 0 و ) 0x000b KEY_0 1.6 0x0007 KEYCODE_0 1
0x07 0x0028 بازگشت صفحه کلید (ENTER) 0x001c KEY_ENTER 1.6 0x0042 KEYCODE_ENTER 1
0x07 0x0029 صفحه کلید ESCAPE 0x0001 KEY_ESC 3.0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 KEYCODE_BACK
0x07 0x002a صفحه کلید DELETE (Backspace) 0x000e KEY_BACKSPACE 1.6 0x0043 KEYCODE_DEL
0x07 0x002b برگه صفحه کلید 0x000f KEY_TAB 1.6 0x003d KEYCODE_TAB
0x07 0x002c صفحه کلید فاصله 0x0039 KEY_SPACE 1.6 0x003e KEYCODE_SPACE
0x07 0x002d صفحه کلید - و _ 0x000c KEY_MINUS 1.6 0x0045 KEYCODE_MINUS 1
0x07 0x002e صفحه کلید = و + 0x000d KEY_EQUAL 1.6 0x0046 KEYCODE_EQUALS 1
0x07 0x002f صفحه کلید [ و { 0x001a KEY_LEFTBRACE 1.6 0x0047 KEYCODE_LEFT_BRACKET 1
0x07 0x0030 صفحه کلید ] و } 0x001b KEY_RIGHTBRACE 1.6 0x0048 KEYCODE_RIGHT_BRACKET 1
0x07 0x0031 صفحه کلید \ و | 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0032 صفحه کلید غیر آمریکایی # و ~ 0x002b KEY_BACKSLASH 1.6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 صفحه کلید؛ و: 0x0027 KEY_SEMICOLON 1.6 0x004a KEYCODE_SEMICOLON 1
0x07 0x0034 صفحه کلید "و" 0x0028 KEY_APOSTROPHE 1.6 0x004b KEYCODE_APOSTROPHE 1
0x07 0x0035 صفحه کلید ` و ~ 0x0029 KEY_GRAVE 3.0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 صفحه کلید و < 0x0033 KEY_COMMA 1.6 0x0037 KEYCODE_COMMA 1
0x07 0x0037 صفحه کلید. و > 0x0034 KEY_DOT 1.6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 صفحه کلید / و ? 0x0035 KEY_SLASH 1.6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Caps Lock صفحه کلید 0x003a KEY_CAPSLOCK 3.0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a صفحه کلید F1 0x003b KEY_F1 3.0 0x0083 KEYCODE_F1
"" "" "" "" 1.6 0x0052 KEYCODE_MENU
0x07 0x003b صفحه کلید F2 0x003c KEY_F2 3.0 0x0084 KEYCODE_F2
"" "" "" "" 1.6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c صفحه کلید F3 0x003d KEY_F3 3.0 0x0085 KEYCODE_F3
"" "" "" "" 1.6 0x0005 KEYCODE_CALL
0x07 0x003d صفحه کلید F4 0x003e KEY_F4 3.0 0x0086 KEYCODE_F4
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x003e صفحه کلید F5 0x003f KEY_F5 3.0 0x0087 KEYCODE_F5
0x07 0x003f صفحه کلید F6 0x0040 KEY_F6 3.0 0x0088 KEYCODE_F6
0x07 0x0040 صفحه کلید F7 0x0041 KEY_F7 3.0 0x0089 KEYCODE_F7
0x07 0x0041 صفحه کلید F8 0x0042 KEY_F8 3.0 0x008a KEYCODE_F8
0x07 0x0042 صفحه کلید F9 0x0043 KEY_F9 3.0 0x008b KEYCODE_F9
0x07 0x0043 صفحه کلید F10 0x0044 KEY_F10 3.0 0x008c KEYCODE_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 صفحه کلید F11 0x0057 KEY_F11 3.0 0x008d KEYCODE_F11
0x07 0x0045 صفحه کلید F12 0x0058 KEY_F12 3.0 0x008e KEYCODE_F12
0x07 0x0046 صفحه چاپ صفحه کلید 0x0063 KEY_SYSRQ 3.0 0x0078 KEYCODE_SYSRQ
0x07 0x0047 قفل پیمایش صفحه کلید 0x0046 KEY_SCROLLLOCK 3.0 0x0074 KEYCODE_SCROLL_LOCK
0x07 0x0048 مکث صفحه کلید 0x0077 KEY_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x07 0x0049 درج صفحه کلید 0x006e KEY_INSERT 3.0 0x007c KEYCODE_INSERT
0x07 0x004a صفحه کلید صفحه کلید 0x0066 KEY_HOME 3.0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1.6 0x0003 KEYCODE_HOME
0x07 0x004b صفحه‌کلید بالا 0x0068 KEY_PAGEUP 3.0 0x005c KEYCODE_PAGE_UP
0x07 0x004c صفحه کلید حذف به جلو 0x006f KEY_DELETE 3.0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d پایان صفحه کلید 0x006b KEY_END 3.0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1.6 0x0006 KEYCODE_ENDCALL
0x07 0x004e صفحه کلید پایین 0x006d KEY_PAGEDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x07 0x004f پیکان راست صفحه کلید 0x006a KEY_RIGHT 1.6 0x0016 KEYCODE_DPAD_RIGHT
0x07 0x0050 پیکان چپ صفحه کلید 0x0069 KEY_LEFT 1.6 0x0015 KEYCODE_DPAD_LEFT
0x07 0x0051 صفحه کلید فلش رو به پایین 0x006c KEY_DOWN 1.6 0x0014 KEYCODE_DPAD_DOWN
0x07 0x0052 صفحه کلید فلش بالا 0x0067 KEY_UP 1.6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 صفحه کلید Num Lock و Clear 0x0045 KEY_NUMLOCK 3.0 0x008f KEYCODE_NUM_LOCK
0x07 0x0054 صفحه کلید / 0x0062 KEY_KPSLASH 3.0 0x009a KEYCODE_NUMPAD_DIVIDE
0x07 0x0055 صفحه کلید * 0x0037 KEY_KPASTERISK 3.0 0x009b KEYCODE_NUMPAD_MULTIPLY
0x07 0x0056 صفحه کلید - 0x004a KEY_KPMINUS 3.0 0x009c KEYCODE_NUMPAD_SUBTRACT
0x07 0x0057 صفحه کلید + 0x004e KEY_KPPLUS 3.0 0x009d KEYCODE_NUMPAD_ADD
0x07 0x0058 صفحه کلید ENTER 0x0060 KEY_KPENTER 3.0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 صفحه کلید 1 و پایان 0x004f KEY_KP1 3.0 0x0091 KEYCODE_NUMPAD_1
0x07 0x005a صفحه کلید 2 و فلش رو به پایین 0x0050 KEY_KP2 3.0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b صفحه کلید 3 و PageDn 0x0051 KEY_KP3 3.0 0x0093 KEYCODE_NUMPAD_3
0x07 0x005c صفحه کلید 4 و فلش چپ 0x004b KEY_KP4 3.0 0x0094 KEYCODE_NUMPAD_4
0x07 0x005d صفحه کلید 5 0x004c KEY_KP5 3.0 0x0095 KEYCODE_NUMPAD_5
0x07 0x005e صفحه کلید 6 و پیکان راست 0x004d KEY_KP6 3.0 0x0096 KEYCODE_NUMPAD_6
0x07 0x005f صفحه کلید 7 و صفحه اصلی 0x0047 KEY_KP7 3.0 0x0097 KEYCODE_NUMPAD_7
0x07 0x0060 صفحه کلید 8 و فلش بالا 0x0048 KEY_KP8 3.0 0x0098 KEYCODE_NUMPAD_8
0x07 0x0061 صفحه کلید 9 و صفحه بالا 0x0049 KEY_KP9 3.0 0x0099 KEYCODE_NUMPAD_9
0x07 0x0062 صفحه کلید 0 و درج کنید 0x0052 KEY_KP0 3.0 0x0090 KEYCODE_NUMPAD_0
0x07 0x0063 صفحه کلید. و حذف کنید 0x0053 KEY_KPDOT 3.0 0x009e KEYCODE_NUMPAD_DOT
0x07 0x0064 صفحه کلید غیر آمریکایی \ و | 0x0056 KEY_102ND 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 برنامه صفحه کلید 0x007f KEY_COMPOSE 3.0 0x0052 KEYCODE_MENU
"" "" "" "" 1.6 0x0054 KEYCODE_SEARCH
0x07 0x0066 قدرت صفحه کلید 0x0074 KEY_POWER 1.6 0x001a KEYCODE_POWER
0x07 0x0067 صفحه کلید = 0x0075 KEY_KPEQUAL 3.0 0x00a1 KEYCODE_NUMPAD_EQUALS
0x07 0x0068 صفحه کلید F13 0x00b7 KEY_F13
0x07 0x0069 صفحه کلید F14 0x00b8 KEY_F14
0x07 0x006a صفحه کلید F15 0x00b9 KEY_F15
0x07 0x006b صفحه کلید F16 0x00ba KEY_F16
0x07 0x006c صفحه کلید F17 0x00bb KEY_F17
0x07 0x006d صفحه کلید F18 0x00bc KEY_F18
0x07 0x006e صفحه کلید F19 0x00bd KEY_F19
0x07 0x006f صفحه کلید F20 0x00be KEY_F20
0x07 0x0070 صفحه کلید F21 0x00bf KEY_F21
0x07 0x0071 صفحه کلید F22 0x00c0 KEY_F22
0x07 0x0072 صفحه کلید F23 0x00c1 KEY_F23
0x07 0x0073 صفحه کلید F24 0x00c2 KEY_F24
0x07 0x0074 صفحه کلید اجرا شود 0x0086 KEY_OPEN
0x07 0x0075 راهنمای صفحه کلید 0x008a KEY_HELP
0x07 0x0076 منوی صفحه کلید 0x0082 KEY_PROPS
0x07 0x0077 صفحه کلید را انتخاب کنید 0x0084 KEY_FRONT
0x07 0x0078 توقف صفحه کلید 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 دوباره صفحه کلید 0x0081 KEY_AGAIN
0x07 0x007a لغو صفحه کلید 0x0083 KEY_UNDO
0x07 0x007b برش صفحه کلید 0x0089 KEY_CUT
0x07 0x007c کپی صفحه کلید 0x0085 KEY_COPY
0x07 0x007d چسباندن صفحه کلید 0x0087 KEY_PASTE
0x07 0x007e یافتن صفحه کلید 0x0088 KEY_FIND
0x07 0x007f بی‌صدا کردن صفحه‌کلید 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x0080 افزایش صدا صفحه کلید 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x07 0x0081 کاهش صدای صفحه کلید 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x0082 قفل صفحه کلید Caps Lock
0x07 0x0083 قفل صفحه کلید Num Lock
0x07 0x0084 قفل صفحه کلید قفل پیمایش
0x07 0x0085 کاما صفحه کلید 0x0079 KEY_KPCOMMA 3.0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 علامت برابر صفحه کلید
0x07 0x0087 صفحه کلید بین المللی 1 0x0059 KEY_RO
0x07 0x0088 صفحه کلید بین المللی 2 0x005d KEY_KATAKANAHIRAGANA
0x07 0x0089 صفحه کلید بین المللی 3 0x007c KEY_YEN
0x07 0x008a صفحه کلید بین المللی 4 0x005c KEY_HENKAN
0x07 0x008b صفحه کلید بین المللی 5 0x005e KEY_MUHENKAN
0x07 0x008c صفحه کلید بین المللی 6 0x005f KEY_KPJPCOMMA
0x07 0x008d صفحه کلید بین المللی 7
0x07 0x008e صفحه کلید بین المللی 8
0x07 0x008f صفحه کلید بین المللی 9
0x07 0x0090 صفحه کلید LANG1 0x007a KEY_HANGEUL
0x07 0x0091 صفحه کلید LANG2 0x007b KEY_HANJA
0x07 0x0092 صفحه کلید LANG3 0x005a KEY_KATAKANA
0x07 0x0093 صفحه کلید LANG4 0x005b KEY_HIRAGANA
0x07 0x0094 صفحه کلید LANG5 0x0055 KEY_ZENKAKUHANKAKU
0x07 0x0095 صفحه کلید LANG6
0x07 0x0096 صفحه کلید LANG7
0x07 0x0097 صفحه کلید LANG8
0x07 0x0098 صفحه کلید LANG9
0x07 0x0099 پاک کردن جایگزین صفحه کلید
0x07 0x009a صفحه کلید SysReq/توجه
0x07 0x009b لغو صفحه کلید
0x07 0x009c صفحه کلید پاک شود
0x07 0x009d صفحه کلید قبلی
0x07 0x009e بازگشت صفحه کلید
0x07 0x009f جداکننده صفحه کلید
0x07 0x00a0 صفحه کلید بیرون
0x07 0x00a1 عملکرد صفحه کلید
0x07 0x00a2 صفحه کلید پاک/دوباره
0x07 0x00a3 صفحه کلید CrSel/Props
0x07 0x00a4 صفحه کلید ExSel
0x07 0x00b0 صفحه کلید 00
0x07 0x00b1 صفحه کلید 000
0x07 0x00b2 جداکننده هزاران
0x07 0x00b3 جداکننده اعشاری
0x07 0x00b4 واحد پول
0x07 0x00b5 واحد ارزی
0x07 0x00b6 صفحه کلید ( 0x00b3 KEY_KPLEFTPAREN 3.0 0x00a2 KEYCODE_NUMPAD_LEFT_PAREN
0x07 0x00b7 صفحه کلید) 0x00b4 KEY_KPRIGHTPAREN 3.0 0x00a3 KEYCODE_NUMPAD_RIGHT_PAREN
0x07 0x00b8 صفحه کلید {
0x07 0x00b9 صفحه کلید }
0x07 0x00ba برگه صفحه کلید
0x07 0x00bb پشت صفحه کلید
0x07 0x00 bc صفحه کلید A
0x07 0x00bd صفحه کلید B
0x07 0x00be صفحه کلید C
0x07 0x00bf صفحه کلید D
0x07 0x00c0 صفحه کلید E
0x07 0x00c1 صفحه کلید F
0x07 0x00c2 صفحه کلید XOR
0x07 0x00c3 صفحه کلید ^
0x07 0x00c4 صفحه کلید %
0x07 0x00c5 صفحه کلید <
0x07 0x00c6 صفحه کلید >
0x07 0x00c7 صفحه کلید و
0x07 0x00c8 صفحه کلید &&
0x07 0x00c9 صفحه کلید |
0x07 0x00ca صفحه کلید ||
0x07 0x00cb صفحه کلید:
0x07 0x00cc صفحه کلید شماره
0x07 0x00cd فضای صفحه کلید
0x07 0x00ce صفحه کلید @
0x07 0x00cf صفحه کلید!
0x07 0x00d0 فروشگاه حافظه صفحه کلید
0x07 0x00d1 فراخوانی حافظه صفحه کلید
0x07 0x00d2 پاک کردن حافظه صفحه کلید
0x07 0x00d3 افزودن حافظه صفحه کلید
0x07 0x00d4 تفریق حافظه صفحه کلید
0x07 0x00d5 افزایش حافظه صفحه کلید
0x07 0x00d6 تقسیم حافظه صفحه کلید
0x07 0x00d7 صفحه کلید +/-
0x07 0x00d8 پاک کردن صفحه کلید
0x07 0x00d9 صفحه کلید پاک کردن ورودی
0x07 0x00da صفحه کلید باینری
0x07 0x00db صفحه کلید هشتی
0x07 0x00dc صفحه کلید اعشاری
0x07 0x00dd صفحه کلید هگزادسیمال
0x07 0x00e0 کنترل سمت چپ صفحه کلید 0x001d KEY_LEFTCTRL 3.0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 شیفت چپ صفحه کلید 0x002a KEY_LEFTSHIFT 1.6 0x003b KEYCODE_SHIFT_LEFT
0x07 0x00e2 صفحه کلید Alt چپ 0x0038 KEY_LEFTALT 1.6 0x0039 KEYCODE_ALT_LEFT
0x07 0x00e3 صفحه کلید رابط کاربری گرافیکی سمت چپ 0x007d KEY_LEFTMETA 3.0 0x0075 KEYCODE_META_LEFT
0x07 0x00e4 کنترل سمت راست صفحه کلید 0x0061 KEY_RIGHTCTRL 3.0 0x0072 KEYCODE_CTRL_RIGHT
0x07 0x00e5 صفحه کلید شیفت به راست 0x0036 KEY_RIGHTSHIFT 1.6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 صفحه کلید سمت راست Alt 0x0064 KEY_RIGHTALT 1.6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 رابط کاربری گرافیکی سمت راست صفحه کلید 0x007e KEY_RIGHTMETA 3.0 0x0076 KEYCODE_META_RIGHT
0x07 0x00e8 0x00a4 KEY_PLAYPAUSE 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x07 0x00e9 0x00a6 KEY_STOPCD 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x00ea 0x00a5 KEY_PEVIOUSSONG 3.0 0x0058 KEYCODE_MEDIA_PEVIOUS
0x07 0x00eb 0x00a3 KEY_NEXTSONG 3.0 0x0057 KEYCODE_MEDIA_NEXT
0x07 0x00ec 0x00a1 KEY_EJECTCD 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x07 0x00ed 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x07 0x00ee 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x00ef 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x00f0 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x07 0x00f1 0x009e KEY_BACK 1.6 0x0004 KEYCODE_BACK
0x07 0x00f2 0x009f KEY_FORWARD 3.0 0x007d KEYCODE_FORWARD
0x07 0x00f3 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x00f4 0x0088 KEY_FIND
0x07 0x00f5 0x00b1 KEY_SCROLLUP 3.0 0x005c KEYCODE_PAGE_UP
0x07 0x00f6 0x00b2 KEY_SCROLLDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x07 0x00f7 0x00b0 KEY_EDIT
0x07 0x00f8 0x008e KEY_SLEEP
0x07 0x00f9 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x07 0x00fa 0x00ad KEY_REFRESH
0x07 0x00fb 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR

صفحه دسکتاپ عمومی HID (0x01)

استفاده از HID نام استفاده از HID LKC نام کد کلید لینوکس نسخه AKC نام کد کلید اندروید یادداشت
0x01 0x0081 خاموش شدن سیستم 0x0074 KEY_POWER 1.6 0x001a KEYCODE_POWER
0x01 0x0082 خواب سیستم 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x01 0x0083 سیستم بیدار شدن 0x008f KEY_WAKEUP 4.0 0x001a KEYCODE_POWER
0x01 0x0084 منوی زمینه سیستم
0x01 0x0085 منوی اصلی سیستم
0x01 0x0086 منوی برنامه سیستم
0x01 0x0087 راهنمای منوی سیستم
0x01 0x0088 خروج از منوی سیستم
0x01 0x0089 منوی سیستم را انتخاب کنید
0x01 0x008a منوی سیستم سمت راست
0x01 0x008b منوی سیستم سمت چپ
0x01 0x008c منوی سیستم بالا
0x01 0x008d منوی سیستم پایین است
0x01 0x008e راه اندازی مجدد سیستم سرد
0x01 0x008f راه اندازی مجدد گرم سیستم
0x01 0x00a0 داک سیستم
0x01 0x00a1 سیستم باز کردن
0x01 0x00a2 راه اندازی سیستم
0x01 0x00a3 خرابی سیستم
0x01 0x00a4 خرابی دیباگر سیستم
0x01 0x00a5 Application Break
0x01 0x00a6 Application Debugger Break
0x01 0x00a7 صدای بلندگوی سیستم
0x01 0x00a8 Hibernate سیستم
0x01 0x00b0 وارونه نمایش سیستم
0x01 0x00b1 نمایش داخلی سیستم
0x01 0x00b2 نمایش خارجی سیستم
0x01 0x00b3 نمایش هر دو سیستم
0x01 0x00b4 نمایش سیستم دوگانه
0x01 0x00b5 نمایش سیستم تعویض داخلی/خارجی
0x01 0x00b6 نمایش سیستم مبادله Prim./Sec.
0x01 0x00b7 مقیاس خودکار LCD نمایشگر سیستم

صفحه مصرف کننده HID (0x0c)

استفاده از HID نام استفاده از HID LKC نام کد کلید لینوکس نسخه AKC نام کد کلید اندروید یادداشت
0x0c 0x0030 قدرت
0x0c 0x0031 بازنشانی کنید
0x0c 0x0032 خواب
0x0c 0x0033 خواب بعد
0x0c 0x0034 حالت خواب 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x0c 0x0040 منو 0x008b KEY_MENU 1.6 0x0052 KEYCODE_MENU
0x0c 0x0041 انتخاب منو
0x0c 0x0042 منو به بالا
0x0c 0x0043 منو پایین
0x0c 0x0044 منوی سمت چپ
0x0c 0x0045 منوی سمت راست 0x0181 KEY_RIGHT
0x0c 0x0046 منو Escape
0x0c 0x0047 افزایش مقدار منو
0x0c 0x0048 کاهش مقدار منو
0x0c 0x0067 تغییر حالت تصویر در تصویر 0x00ab KEYCODE_WINDOW اضافه شده در aosp/1365553
0x0c 0x0069 دکمه منو قرمز 0x18e KEY_RED 0x00b7 KEYCODE_PROG_RED اضافه شده در aosp/1388616
0x0c 0x006a دکمه منو سبز 0x18f KEY_GREEN 0x00b8 KEYCODE_PROG_GREEN اضافه شده در aosp/1388616
0x0c 0x006b دکمه منو آبی 0x191 KEY_BLUE 0x00ba KEYCODE_PROG_BLUE اضافه شده در aosp/1388616
0x0c 0x006c دکمه زرد منو 0x190 KEY_YELLOW 0x00b9 KEYCODE_PROG_YELLOW اضافه شده در aosp/1388616
0x0c 0x0081 اختصاص انتخاب
0x0c 0x0082 مرحله حالت
0x0c 0x0083 آخرین را به یاد بیاورید 0x0195 KEY_LAST 0x5 KEYCODE_LAST_CHANNEL اضافه شده در aosp/1365551
0x0c 0x0084 وارد کانال شوید
0x0c 0x0085 سفارش فیلم
0x0c 0x0088 رسانه کامپیوتر را انتخاب کنید 0x0178 KEY_PC
0x0c 0x0089 تلویزیون انتخاب رسانه 0x0179 KEY_TV 3.0 0x00aa KEYCODE_TV
0x0c 0x008a رسانه WWW را انتخاب کنید 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x008b DVD را انتخاب کنید 0x0185 KEY_DVD
0x0c 0x008c رسانه تلفن را انتخاب کنید 0x00a9 KEY_PHONE 3.0 0x0005 KEYCODE_CALL
0x0c 0x008d راهنمای برنامه انتخاب رسانه 0x016a KEY_PROGRAM 3.0 0x00ac KEYCODE_GUIDE
0x0c 0x008e رسانه تلفن تصویری را انتخاب کنید 0x01a0 KEY_VIDEOPHONE
0x0c 0x008f رسانه انتخاب بازی ها 0x01a1 KEY_GAMES
0x0c 0x0090 رسانه پیام‌ها را انتخاب کنید 0x018c KEY_MEMO
0x0c 0x0091 سی دی را انتخاب کنید 0x017f KEY_CD
0x0c 0x0092 رسانه VCR را انتخاب کنید 0x017b KEY_VCR
0x0c 0x0093 تنظیم کننده رسانه انتخاب کنید 0x0182 KEY_TUNER
0x0c 0x0094 ترک کنید 0x00ae KEY_EXIT
0x0c 0x0095 کمک 0x008a KEY_HELP
0x0c 0x0096 نوار را انتخاب کنید 0x0180 KEY_TAPE
0x0c 0x0097 کابل انتخاب رسانه 0x017a KEY_TV2
0x0c 0x0098 رسانه ماهواره را انتخاب کنید 0x017d KEY_SAT
0x0c 0x0099 رسانه امنیت را انتخاب کنید
0x0c 0x009a رسانه صفحه اصلی را انتخاب کنید 0x016e KEY_PVR 3.0 0x00ad KEYCODE_DVR
0x0c 0x0061 عنوان بسته 0x0172 KEY_SUBTITLE 0x00af KEYCODE_CAPTIONS اضافه شده در aosp/1365552
0x0c 0x009c افزایش کانال 0x0192 KEY_CHANNELUP 3.0 0x00a6 KEYCODE_CHANNEL_UP
0x0c 0x009d کاهش کانال 0x0193 KEY_CHANNELDOWN 3.0 0x00a7 KEYCODE_CHANNEL_DOWN
0x0c 0x009e رسانه SAP را انتخاب کنید
0x0c 0x00a0 VCR Plus 0x017c KEY_VCR2
0x0c 0x00a1 یک بار
0x0c 0x00a2 روزانه
0x0c 0x00a3 هفتگی
0x0c 0x00a4 ماهانه
0x0c 0x00b0 بازی 0x00cf KEY_PLAY 3.0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 مکث کنید 0x0077 KEY_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 رکورد 0x00a7 KEY_RECORD 3.0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 سریع به جلو 0x00d0 KEY_FASTFORWARD 3.0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 باز پیچی 0x00a8 KEY_REWIND 3.0 0x0059 KEYCODE_MEDIA_REWIND
0x0c 0x00b5 اسکن آهنگ بعدی 0x00a3 KEY_NEXTSONG 3.0 0x0057 KEYCODE_MEDIA_NEXT
0x0c 0x00b6 اسکن آهنگ قبلی 0x00a5 KEY_PEVIOUSSONG 3.0 0x0058 KEYCODE_MEDIA_PEVIOUS
0x0c 0x00b7 متوقف کردن 0x00a6 KEY_STOPCD 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x00b8 بیرون انداختن 0x00a1 KEY_EJECTCD 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x0c 0x00b9 بازی تصادفی
0x0c 0x00ba دیسک را انتخاب کنید
0x0c 0x00bb دیسک را وارد کنید
0x0c 0x00bc تکرار 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be ردیابی عادی
0x0c 0x00c0 فریم به جلو
0x0c 0x00c1 قاب پشت
0x0c 0x00c2 علامت
0x0c 0x00c3 علامت گذاری را پاک کنید
0x0c 0x00c4 Repeat From Mark
0x0c 0x00c5 بازگشت به علامت
0x0c 0x00c6 جستجو علامت گذاری به جلو
0x0c 0x00c7 جستجو علامت به عقب
0x0c 0x00c8 تنظیم مجدد شمارنده
0x0c 0x00c9 نمایش شمارنده
0x0c 0x00ca افزایش پیگیری
0x0c 0x00cb کاهش ردیابی
0x0c 0x00cc توقف / خارج کردن
0x0c 0x00cd پخش توقف 0x00a4 KEY_PLAYPAUSE 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce پخش / پرش
0x0c 0x00e2 بی صدا 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x0c 0x00e5 افزایش باس 0x00d1 KEY_BASSBOOST
0x0c 0x00e6 حالت فراگیر
0x0c 0x00e7 بلندی صدا
0x0c 0x00e8 MPX
0x0c 0x00e9 افزایش حجم 0x0073 KEY_VOLUMEUP 1.6 0x0018 KEYCODE_VOLUME_UP
0x0c 0x00ea کاهش حجم 0x0072 KEY_VOLUMEDOWN 1.6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 افزایش صوتی جایگزین 0x00de KEYCODE_MEDIA_AUDIO_TRACK اضافه شده در aosp/1365554
0x0c 0x0181 پیکربندی دکمه راه اندازی AL. ابزار
0x0c 0x0182 پیکربندی دکمه قابل برنامه ریزی AL 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 پیکربندی کنترل مصرف کننده AL. 0x00ab KEY_CONFIG 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x0184 واژه پرداز AL 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 ویرایشگر متن AL 0x01a6 KEY_EDITOR
0x0c 0x0186 صفحه گسترده AL 0x01a7 KEY_SPREADSHET
0x0c 0x0187 ویرایشگر گرافیک AL 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 برنامه ارائه AL 0x01a9 KEY_PRESENTATION
0x0c 0x0189 برنامه پایگاه داده AL 0x01aa KEY_DATABASE
0x0c 0x018a AL ایمیل خوان 0x009b KEY_MAIL 1.6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b خبرخوان AL 0x01ab KEY_NEWS
0x0c 0x018c پست صوتی AL 0x01ac KEY_VOICEMAIL
0x0c 0x018d AL مخاطبین / دفترچه آدرس 0x01ad KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_CONTACTS
0x0c 0x018e AL تقویم / برنامه 0x018d KEY_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f AL Task / مدیر پروژه
0x0c 0x0190 AL Log / Journal / Timecard
0x0c 0x0191 دسته چک AL / امور مالی 0x00db KEY_FINANCE
0x0c 0x0192 ماشین حساب AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR
0x0c 0x0193 ضبط / پخش AL A/V
0x0c 0x0194 مرورگر ماشین محلی AL 0x0090 KEY_FILE
0x0c 0x0195 مرورگر AL LAN/WAN
0x0c 0x0196 مرورگر اینترنت AL 0x0096 KEY_WWW 1.6 0x0040 KEYCODE_EXPLORER
0x0c 0x0197 AL شبکه از راه دور / اتصال ISP
0x0c 0x0198 کنفرانس شبکه AL
0x0c 0x0199 چت شبکه AL 0x00d8 KEY_CHAT
0x0c 0x019a تلفن AL / شماره گیر
0x0c 0x019b ورود به سیستم AL
0x0c 0x019c AL Logoff 0x01b1 KEY_LOGOFF
0x0c 0x019d AL Logon / Logoff
0x0c 0x019e قفل ترمینال AL / محافظ صفحه نمایش 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x0c 0x019f کنترل پنل AL
0x0c 0x01a0 پردازشگر خط فرمان AL / اجرا شود
0x0c 0x01a1 AL Process / Task Manager
0x0c 0x01a2 AL Task / Application را انتخاب کنید
0x0c 0x01a3 AL وظیفه / برنامه بعدی
0x0c 0x01a4 AL وظیفه / برنامه قبلی
0x0c 0x01a5 کار / برنامه AL Preemptive Halt.
0x0c 0x01a6 مرکز راهنمای یکپارچه AL 0x008a KEY_HELP
0x0c 0x01a7 اسناد AL 0x00eb KEY_DOCUMENTS
0x0c 0x01a8 اصطلاحنامه AL
0x0c 0x01a9 فرهنگ لغت AL
0x0c 0x01aa دسکتاپ AL
0x0c 0x01ab AL چک املا 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac بررسی گرامر AL
0x0c 0x01ad وضعیت بی سیم AL
0x0c 0x01ae چیدمان صفحه کلید AL
0x0c 0x01af حفاظت از ویروس AL
0x0c 0x01b0 رمزگذاری AL
0x0c 0x01b1 محافظ صفحه AL
0x0c 0x01b2 آلارم های AL
0x0c 0x01b3 ساعت AL
0x0c 0x01b4 مرورگر فایل AL
0x0c 0x01b5 وضعیت برق AL
0x0c 0x01b6 مرورگر تصویر AL 0x00e2 KEY_MEDIA 3.0 0x004f KEYCODE_HEADSETHOOK
0x0c 0x01b7 مرورگر صوتی AL 0x00d5 KEY_SOUND 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x01b8 مرورگر فیلم AL
0x0c 0x01b9 مدیر حقوق دیجیتال AL
0x0c 0x01ba کیف پول دیجیتال AL
0x0c 0x01bc AL پیام فوری 0x01ae KEY_MESSENGER
0x0c 0x01bd ویژگی های AL OEM / مرورگر نکات 0x0166 KEY_INFO
0x0c 0x01be راهنما AL OEM
0x0c 0x01bf انجمن آنلاین AL
0x0c 0x01c0 مرورگر محتوای AL Entertainment
0x0c 0x01c1 مرورگر خرید آنلاین AL
0x0c 0x01c2 AL SmartCard اطلاعات / راهنما
0x0c 0x01c3 مرورگر AL Market / Finance
0x0c 0x01c4 AL Customized Corp. News Browser
0x0c 0x01c5 مرورگر فعالیت آنلاین AL
0x0c 0x01c6 AL Research / مرورگر جستجو
0x0c 0x01c7 پخش کننده صوتی AL
0x0c 0x0201 AC جدید 0x00b5 KEY_NEW
0x0c 0x0202 AC باز 0x0086 KEY_OPEN
0x0c 0x0203 AC Close 0x00ce KEY_CLOSE
0x0c 0x0204 خروج AC 0x00ae KEY_EXIT
0x0c 0x0205 AC حداکثر کنید
0x0c 0x0206 AC به حداقل رساندن
0x0c 0x0207 AC پس انداز کنید 0x00ea key_save
0x0c 0x0208 چاپ AC 0x00d2 key_print
0x0c 0x0209 خواص AC 0x0082 key_props
0x0c 0x021a AC خنثی کردن 0x0083 key_undo
0x0c 0x021b کپی AC 0x0085 key_copy
0x0c 0x021c برش AC 0x0089 key_cut
0x0c 0x021d خمیر 0x0087 key_paste
0x0c 0x021e AC همه را انتخاب کنید
0x0c 0x021f یافتن AC 0x0088 key_find
0x0c 0x0220 AC پیدا کردن و جایگزینی
0x0c 0x0221 جستجوی AC 0x00d9 key_search 1.6 0x0054 کلید keycode_search
0x0c 0x0222 AC به 0x0162 key_goto
0x0c 0x0223 خانه 0x00ac key_homepage 3.0 0x0003 کد کلید_م
0x0c 0x0224 بازگشت 0x009e key_back 1.6 0x0004 کد کلید_
0x0c 0x0225 AC به جلو 0x009f key_forward 3.0 0x007d کد کلید_
0x0c 0x0226 توقف 0x0080 Key_stop 3.0 0x0056 keycode_media_stop
0x0c 0x0227 تازه کردن AC 0x00ad key_refresh
0x0c 0x0228 پیوند قبلی AC
0x0c 0x0229 پیوند بعدی AC
0x0c 0x022a نشانه های AC 0x009c key_bookmarks 3.0 0x00ae keycode_bookmark
0x0c 0x022b تاریخچه AC
0x0c 0x022c اشتراک AC
0x0c 0x022d بزرگنمایی AC 0x01a2 key_zoomin
0x0c 0x022E ac بزرگنمایی 0x01A3 key_zoomout
0x0c 0x022f زوم AC 0x01a4 key_zoomreset 2
0x0c 0x0230 نمای تمام صفحه AC
0x0c 0x0231 نمای طبیعی AC
0x0c 0x0232 ضامع نمای AC
0x0c 0x0233 پیمایش AC 0x00b1 key_scrollup 3.0 0x005c keycode_page_up
0x0c 0x0234 AC به پایین حرکت کنید 0x00b2 key_scrolldown 3.0 0x005d keycode_page_down
0x0c 0x0236 تابه AC سمت چپ
0x0c 0x0237 AC PAN درست است
0x0c 0x0239 پنجره جدید
0x0c 0x023a کاشی AC به صورت افقی
0x0c 0x023b کاشی AC به صورت عمودی
0x0c 0x023c قالب AC
0x0c 0x023d ویرایش AC
0x0c 0x023e AC پررنگ
0x0c 0x023f ایتالیایی
0x0c 0x0240 AC زیر خط
0x0c 0x0241 AC Strikethrough
0x0c 0x0242 فهرست AC
0x0c 0x0243 نسخه AC
0x0c 0x0244 AC ALL CAPS
0x0c 0x0245 چرخش AC
0x0c 0x0246 تغییر اندازه
0x0c 0x0247 AC Flip Horizontal
0x0c 0x0248 AC Flip Ecertical
0x0c 0x0249 آینه AC افقی
0x0c 0x024a آینه AC عمودی
0x0c 0x024b AC Font را انتخاب کنید
0x0c 0x024c رنگ قلم AC
0x0c 0x024d اندازه قلم AC
0x0c 0x024e AC توجیه شده سمت چپ
0x0c 0x024f مرکز توجیهی H
0x0c 0x0250 AC درست توجیه کنید
0x0c 0x0251 AC توجیه بلوک H
0x0c 0x0252 ac توجیه بالا
0x0c 0x0253 AC توجیه مرکز v
0x0c 0x0254 AC پایین را توجیه کنید
0x0c 0x0255 AC توجیه بلوک V
0x0c 0x0256 کاهش تورفتگی
0x0c 0x0257 افزایش تورفتگی AC
0x0c 0x0258 لیست شماره AC
0x0c 0x0259 شماره گذاری مجدد AC
0x0c 0x025a لیست گلوله AC
0x0c 0x025b AC ترویج می کند
0x0c 0x025c AC Demote
0x0c 0x025d ac بله
0x0c 0x025e نه
0x0c 0x025f لغو AC 0x00df key_cancel
0x0c 0x0260 کاتالوگ AC
0x0c 0x0261 خرید / پرداخت AC
0x0c 0x0262 AC به سبد خرید اضافه کنید
0x0c 0x0263 AC گسترش یافته
0x0c 0x0264 AC همه را گسترش دهید
0x0c 0x0265 سقوط AC
0x0c 0x0266 AC همه را فرو می ریزد
0x0c 0x0267 پیش نمایش چاپ AC
0x0c 0x0268 رب خاص خاص
0x0c 0x0269 حالت درج AC
0x0c 0x026a حذف AC
0x0c 0x026b ساعت
0x0c 0x026c باز کردن قفل AC
0x0c 0x026d AC محافظت می کند
0x0c 0x026e بدون محافظت
0x0c 0x026f نظر ضمیمه AC
0x0c 0x0270 نظر حذف AC
0x0c 0x0271 نظر مشاهده AC
0x0c 0x0272 AC SELECT WORD
0x0c 0x0273 AC SELECT جمله
0x0c 0x0274 AC پاراگراف را انتخاب کنید
0x0c 0x0275 ستون AC SELECT
0x0c 0x0276 AC Select Row
0x0c 0x0277 جدول انتخاب AC
0x0c 0x0278 AC Object را انتخاب کنید
0x0c 0x0279 ac redo / تکرار 0x00b6 key_redo
0x0c 0x027a نوع AC
0x0c 0x027b صعود مرتب
0x0c 0x027c طبقه بندی AC نزولی
0x0c 0x027d فیلتر AC
0x0c 0x027e ساعت تنظیم
0x0c 0x027f ساعت نمای AC
0x0c 0x0280 منطقه زمانی انتخاب AC
0x0c 0x0281 مناطق زمانی ویرایش AC
0x0c 0x0282 AC Set Alarm
0x0c 0x0283 AC Clear Alarm
0x0c 0x0284 زنگ هشدار AC
0x0c 0x0285 زنگ تنظیم مجدد AC
0x0c 0x0286 AC همزمان
0x0c 0x0287 ارسال/دریافت AC
0x0c 0x0288 ارسال به
0x0c 0x0289 پاسخ AC 0x00e8 key_reply
0x0c 0x028a پاسخ AC همه
0x0c 0x028b AC Forward MSG 0x00e9 key_forwardmail
0x0c 0x028c ارسال AC 0x00e7 key_send
0x0c 0x028d AC پیوست پرونده
0x0c 0x028e بارگذاری AC
0x0c 0x028f بارگیری AC (ذخیره هدف AS)
0x0c 0x0290 مرزهای مجموعه AC
0x0c 0x0291 ردیف درج AC
0x0c 0x0292 ستون درج AC
0x0c 0x0293 پرونده درج AC
0x0c 0x0294 تصویر درج AC
0x0c 0x0295 شیء درج AC
0x0c 0x0296 نماد درج AC
0x0c 0x0297 AC پس انداز و بسته شود
0x0c 0x0298 نام بردن از AC
0x0c 0x0299 ادغام AC
0x0c 0x029a تقسیم AC
0x0c 0x029b AC به صورت افقی توزیع می کند
0x0c 0x029c AC به صورت عمودی توزیع می کند

نگاشتهای غیر مخفی اضافی

این نگاشت ها توابعی را توصیف می کنند که در HID ظاهر نمی شوند اما کدهای کلیدی لینوکس وجود دارند.

LKC نام کد کلید لینوکس نسخه AKC نام کد کلید اندرویدی یادداشت
0x01d0 key_fn 3.0 0x0077 KeyCode_Function
0x01D1 key_fn_esc 3.0 0x006f کد کلید_ 3
0x01d2 key_fn_f1 3.0 0x0083 keycode_f1 3
0x01d3 key_fn_f2 3.0 0x0084 keycode_f2 3
0x01d4 key_fn_f3 3.0 0x0085 keycode_f3 3
0x01d5 key_fn_f4 3.0 0x0086 keycode_f4 3
0x01d6 key_fn_f5 3.0 0x0087 keycode_f5 3
0x01d7 key_fn_f6 3.0 0x0088 keycode_f6 3
0x01d8 key_fn_f7 3.0 0x0089 keycode_f7 3
0x01d9 key_fn_f8 3.0 0x008a keycode_f8 3
0x01da key_fn_f9 3.0 0x008B keycode_f9 3
0x01db key_fn_f10 3.0 0x008c keycode_f10 3
0x01dc key_fn_f11 3.0 0x008d keycode_f11 3
0x01DD key_fn_f12 3.0 0x008e keycode_f12 3
0x01de key_fn_1 3.0 0x0008 keycode_1 3
0x01DF key_fn_2 3.0 0x0009 keycode_2 3
0x01e0 key_fn_d 3.0 0x0020 keycode_d 3
0x01e1 key_fn_e 3.0 0x0021 کد کلید_E 3
0x01e2 key_fn_f 3.0 0x0022 keycode_f 3
0x01e3 key_fn_s 3.0 0x002f کد کلید_S 3
0x01e4 key_fn_b 3.0 0x001e کد کلید_B 3

کلیدهای پشتیبانی نشده میراث

این نگاشت ها در نسخه های قبلی اندروید ظاهر شدند اما با کدهای کلیدی لینوکس HID یا استفاده نشده مغایر بودند. آنها دیگر پشتیبانی نمی شوند.

LKC نام کد کلید لینوکس نسخه AKC نام کد کلید اندرویدی یادداشت
0x00db key_email 1.6 0x004d KeyCode_at 4
"" "" 4.0 4
0x00e3 key_star 1.6 0x0011 کد keycode_star 4
"" "" 4.0 4
0x00e4 key_sharp 1.6 0x0012 کد keycode_pound 4
"" "" 4.0 4
0x00e5 key_soft1 1.6 0x0052 کد کلید_منو 4
"" "" 4.0 4
0x00e6 key_soft2 1.6 0x0002 keycode_soft_right 4
"" "" 4.0 4
0x00e7 key_send 1.6 0x0005 کد کلید_ 4
"" "" 4.0 4
0x00e8 کلیدی 1.6 0x0017 keycode_dpad_center 4
"" "" 4.0 4
0x00e9 key_headsethook 1.6 0x004f کد keycode_headsethook 4
"" "" 4.0 4
0x00ea key_0_5 1.6 4
0x00EB key_2_5 1.6 4

یادداشت

  1. کد کلیدی اندرویدی مرتبط با کلیدهای الفبایی و نمادین مشترک ممکن است بر اساس طرح و زبان صفحه کلید متفاوت باشد. به دلایل تاریخی ، کدهای اسکن فیزیکی و استفاده های مخفی مرتبط با کلیدهای موجود در صفحه کلید اغلب به صورت موقعیتی تعریف می شوند ، حتی اگر برچسب های چاپ شده بر روی آن کلیدها ممکن است از یک زبان به زبان دیگر متفاوت باشند.

    در صفحه کلید انگلیسی (QWERTY) ایالات متحده ، کلید الفبای بالا سمت چپ با برچسب Q. روی صفحه کلید فرانسوی (Azerty) ، کلید در همان موقعیت A. با وجود برچسب A. با وجود برچسب ، در هر دو صفحه کلید الفبای بالا سمت چپ برچسب است. با استفاده از HID Usage 0x07 0x0014 که به کد کلید Linux Key_Q نقشه برداری شده است ، اشاره شده است.

    هنگامی که Android با یک طرح صفحه کلید انگلیسی ایالات متحده پیکربندی شده است ، پس کد کلید Linux Key_Q به کد کلید Android keycode_q نقشه برداری می شود و کاراکترها را "Q" و "Q" تولید می کند. با این حال ، هنگامی که Android با یک طرح صفحه کلید فرانسوی پیکربندی شده است ، کد کلید Linux Key_Q به کد کلید Android keycode_a نقشه برداری می شود و کاراکترها را "A" و "A" تولید می کند.

    کد کلید Android به طور معمول تفسیر خاص زبان از کلید را منعکس می کند ، بنابراین ممکن است از یک کد کلید متفاوت اندرویدی برای زبانهای مختلف استفاده شود.

  2. 0x0c 0x022f AC Zoom در HID به عنوان یک کنترل خطی تعریف شده است اما هسته آن را به عنوان یک کلید ترسیم می کند ، که احتمالاً نادرست است.

  3. کلیدهای عملکردی لینوکس KEY_FN_* به کدهای کلیدی ساده تر نقشه برداری می شوند اما با بیت حالت META_FUNCTION عملکرد متا تنظیم شده به درستی اعزام می شوند.

  4. قبل از ساندویچ بستنی اندروید 4.0 ، طرح پیش فرض کلیدی حاوی نقشه برداری برای برخی از کدهای کلیدی اضافی بود که در هدرهای اصلی هسته لینوکس تعریف نشده بودند. این نقشه ها از آن زمان حذف شده اند زیرا این کدهای کلیدی که قبلاً تعریف نشده بودند ، از آن زمان در نسخه های جدیدتر هسته لینوکس معانی مختلفی به آنها اختصاص داده شده است.

منابع

  1. جداول استفاده HID USB v1.12
  2. Linux 2.6.39 هسته: شامل/linux/input.h ، درایورها/HID/HID-INPUT.C
  3. ICS Android: Qwerty.kl ، generic.kl ، keyevent.java