Tuş düzeni dosyaları (.kl
dosyaları) Linux anahtar kodlarını ve eksen kodlarını eşle
ve ilişkili politika işaretlerini belirtmelidir.
Cihaza özel tuş düzeni dosyaları:
- Aşağıdakiler dahil anahtarlara sahip dahili (yerleşik) giriş cihazları için gereklidir: ses seviyesi, güç ve mikrofonlu kulaklık medya tuşları gibi özel tuşlar.
- Diğer giriş cihazları için isteğe bağlıdır ancak şunun için önerilir: özel klavyeler ve kontrol çubukları var.
Cihaza özel tuş düzeni dosyası yoksa sistem varsayılan olarak ayarlayabilirsiniz.
Konum
Tuş düzeni dosyaları USB tedarikçisine, ürüne (ve isteğe bağlı olarak sürüm) göre bulunur kimliği veya giriş cihazı adına göre değişir. Aşağıdaki yollar sırayla danışılır:
/odm/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/vendor/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/system/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/data/system/devices/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
/odm/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
/vendor/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
/system/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
/data/system/devices/keylayout/Vendor_XXXX_Product_XXXX.kl
/odm/usr/keylayout/DEVICE_NAME.kl
/vendor/usr/keylayout/DEVICE_NAME.kl
/system/usr/keylayout/DEVICE_NAME.kl
/data/system/devices/keylayout/DEVICE_NAME.kl
/odm/usr/keylayout/Generic.kl
/vendor/usr/keylayout/Generic.kl
/system/usr/keylayout/Generic.kl
/data/system/devices/keylayout/Generic.kl
Cihaz adını içeren bir dosya yolu oluştururken tüm karakterler '0'-'9', 'a'-'z', 'a'-'z', "A"-"Z", "-" veya "_" ile değiştirilir "_".
Genel anahtar düzeni dosyası
Sistem, Google Etiket Yöneticisi'ni kullanarak
Generic.kl
Bu anahtar düzeni, birçok farklı özelliği desteklemek üzere tasarlanmıştır.
standart harici klavyeler ve kontrol çubukları bulunur. Genel anahtarı değiştirmeyin
unutmayın!
Sözdizimi
Anahtar düzeni dosyası, anahtar veya eksen bildirimlerinden oluşan bir düz metin dosyasıdır ve işaretler.
Anahtar beyanları
Anahtar bildirimleri, key
anahtar kelimesinden ve ardından Linux'tan oluşur.
anahtar kod numarası ve Android anahtar kodu adı veya anahtar kelime kullanımının ardından
HID kullanımı ve Android anahtar kodu adı. HID kullanımı, 32 bit olarak gösterilir.
Yüksek 16 bit değeri, HID kullanım sayfasını ve düşük 16 bit değerini temsil eden tam sayı
HID kullanım kimliğini temsil eder. Her iki beyanın ardından isteğe bağlı bir
Boşlukla ayrılmış politika işaretleri grubudur.
key 1 ESCAPE key 114 VOLUME_DOWN key 16 Q VIRTUAL key usage 0x0c006F BRIGHTNESS_UP
Aşağıdaki politika işaretleri tanınır:
FUNCTION
: Anahtar, FUNCTION tuşu olarak yorumlanmalıdır tuşuna da basıldı.GESTURE
: Avuç içine gösterme gibi bir kullanıcı hareketiyle oluşturulan anahtar dokunun.VIRTUAL
: Tuş, sanal bir yazılım tuşudur (kapasitif düğme). bitişiğinde olur. Bu, özel bir geri alma mantığının etkin (aşağıya bakın).
Eksen bildirimleri
Eksen bildirimlerinin her biri axis
anahtar kelimesinden ve ardından bir
Linux eksen kod numarası ve eksenin davranışını kontrol eden niteleyiciler
en az bir Android eksen kod adı içermelidir.
Temel eksenler
Temel bir eksen, bir Linux eksen kodunu Android eksen kod adıyla eşler. İlgili içeriği oluşturmak için kullanılan
aşağıdaki beyan eşlemeleri ABS_X
(0x00
ile gösterilir)
AXIS_X
(X
ile gösterilir).
axis 0x00 X
Yukarıdaki örnekte, ABS_X
değeri 5
ise
AXIS_X
, 5
olarak ayarlanır.
Eksenleri böl
Bölünmüş eksen, bir Linux eksen kodunu iki Android ekseni kod adıyla eşler. Örneğin: bir eşikten küçük veya eşikten büyük değerler iki farklı eksene bölünür somut olarak ortaya koyar. Bu eşleme, Search Ads 360'ın tek bir fiziksel ekseni bildirdiği cihaz, birbirini dışlayan iki farklı mantıksal eksen kodluyor.
Aşağıdaki bildirim, ABS_Y
ekseninin değerlerini eşliyor
(0x01
ile gösterilir) - AXIS_GAS
(şundan küçük olduğunda):
0x7f
veya AXIS_BRAKE
değerine (şundan büyük olduğunda)
0x7f
.
axis 0x01 split 0x7f GAS BRAKE
Yukarıdaki örnekte, ABS_Y
değeri 0x7d
ise
ardından AXIS_GAS
, 2
(0x7f - 0x7d
) olarak ayarlanır
ve AXIS_BRAKE
0
olarak ayarlandı. Bunun aksine,
ABS_Y
değeri 0x83
, ardından AXIS_GAS
olarak ayarlandı
0
ve AXIS_BRAKE
4
olarak ayarlandı
(0x83 - 0x7f
). Son olarak, ABS_Y
değeri şuna eşitse:
0x7f
öğesinin bölme değeri, ardından hem AXIS_GAS
hem de
AXIS_BRAKE
, 0
olarak ayarlandı.
Ters eksenler
Ters çevrilmiş bir eksen, eksen değerinin işaretini tersine çevirir. Aşağıdakiler
beyan ABS_RZ
(0x05
ile gösterilir) ile eşleşir
AXIS_BRAKE
(BRAKE
ile gösterilir) ve
çıkış miktarına ilişkindir.
axis 0x05 invert BRAKE
Yukarıdaki örnekte, ABS_RZ
değeri 2
ise
AXIS_BRAKE
, -2
olarak ayarlanır.
Orta düz seçeneği
Bir kontrol çubuğu cihazı, gürültü nedeniyle kontrol çubuğu kullanılmıyorken bile giriş etkinliklerini raporlayabilir. Bu gürültü genellikle sol ve/veya sağ çubuklardan gelir ve sürücünün bunu bildirmesine neden olur. 0'a yakın bir konum değerine ayarlanır. "Ortadaki düz" değeri, aktif olmayan kumandadan beklenmesi gereken gürültü miktarını belirtir.
Linux giriş protokolü, giriş cihazı sürücülerinin aşağıdakileri belirtmesi için bir yol sağlar:
kontrol çubuğu eksenlerinin merkezdeki düz değeri, ancak tüm sürücüler bunu bildirmez ve bazıları
hatalı değerlere sahiptir. Bu sorunu çözmek için bir eksen beyanının ardından bir
Merkezin etrafındaki bölgenin genişliğini belirten flat
seçeneği
ortalanmış olarak kabul edilmesi gereken eksenin konumu.
Örneğin, bir cihaz sürücüsü AXIS_X
için 0 ile 100 arasında değer bildiriyorsa
0, Android giriş sistemi tarafından -1 ile, 100 ise 1 ile eşlenir.
Aralığın merkezi, ölçeklenmemiş koordinatlarda 50 ve ölçeklendirilmiş koordinatlarda 0 olacaktır.
Sabit değer 10'a eşitse
geliştiriciler, dönüşüm sayıları arasında bildirilen herhangi bir AXIS_X
değerinin
-0,1 ve 0,1 (ölçeklenmemiş koordinatlarda 40 ile 60 arasında) gürültüdür ve gelen bu değerleri hesaplamaya çalışır
sıfır olarak ayarlayın.
Not: Anahtar düzen dosyası sürücü koordinat alanı için android.view.InputDevice.MotionRange#getFlat() tarafından bildirilen değer Android'de koordinat alanıdır.
axis 0x03 Z flat 4096
Yukarıdaki örnekte, ortadaki sabit değer 4096
olarak ayarlanmıştır.
Yorumlar
Yorum satırları # ile başlar ve satırın sonuna kadar devam eder:
# A comment!
Boş satırlar yoksayılır.
Örnekler
Klavye
# This is an example of a key layout file for a keyboard. key 1 ESCAPE key 2 1 key 3 2 key 4 3 key 5 4 key 6 5 key 7 6 key 8 7 key 9 8 key 10 9 key 11 0 key 12 MINUS key 13 EQUALS key 14 DEL # etc...
Sistem kontrolleri
# This is an example of a key layout file for basic system controls, # such as volume and power keys which are typically implemented as GPIO pins # the device decodes into key presses. key 114 VOLUME_DOWN key 115 VOLUME_UP key 116 POWER
Kapasitif düğmeler
# This is an example of a key layout file for a touch device with capacitive buttons. key 139 MENU VIRTUAL key 172 HOME VIRTUAL key 158 BACK VIRTUAL key 217 SEARCH VIRTUAL
Mikrofonlu kulaklık jakı medya kontrolleri
# This is an example of a key layout file for headset mounted media controls. # A typical headset jack interface might have special control wires or detect known # resistive loads as corresponding to media functions or volume controls. # This file assumes that the driver decodes these signals and reports media # controls as key presses. key 163 MEDIA_NEXT key 165 MEDIA_PREVIOUS key 226 HEADSETHOOK
Kontrol çubuğu
# This is an example of a key layout file for a joystick. # These are the buttons that the joystick supports, represented as keys. key 304 BUTTON_A key 305 BUTTON_B key 307 BUTTON_X key 308 BUTTON_Y key 310 BUTTON_L1 key 311 BUTTON_R1 key 314 BUTTON_SELECT key 315 BUTTON_START key 316 BUTTON_MODE key 317 BUTTON_THUMBL key 318 BUTTON_THUMBR # Left and right stick. # The reported value for flat is 128 in a range of -32767 to 32768, which is absurd. # This confuses applications that rely on the flat value because the joystick # actually settles in a flat range of +/- 4096 or so. We override it here. axis 0x00 X flat 4096 axis 0x01 Y flat 4096 axis 0x03 Z flat 4096 axis 0x04 RZ flat 4096 # Triggers. axis 0x02 LTRIGGER axis 0x05 RTRIGGER # Hat. axis 0x10 HAT_X axis 0x11 HAT_Y
Sanal geçici tuşlar
Giriş sistemi, sanal tuşlu tuşların uygulanması için bazı özellikler sunar. aşağıdaki kullanım örneklerinde belirtilmiştir:
- Sanal yazılım tuşları ekranda grafik olarak görünüyorsa (örneğin, Galaxy Nexus'lar için), bu cihazdaki Navigasyon Çubuğu bileşeni tarafından uygulanır Sistem kullanıcı arayüzü paketi. Grafik sanal tuşlar, hızlı bir şekilde anahtar düzeni dosyalarına dahil edilmez. Ayrıca, bu bilgiler geçerli değildir.
- Sanal yazılım tuşları, genişletilmiş dokunulabilir bir bölge olarak uygulanırsa
(Nexus One'da olduğu gibi) ana ekranın bir parçası olan
sistem, X/Y dokunma koordinatlarını aşağıdaki konumlara çevirmek için sanal bir tuş eşleme dosyası kullanır:
ve ardından Linux anahtar kodlarını aşağıdaki dillere çevirmek için anahtar düzen dosyasını kullanır
Android anahtar kodları (sanal anahtar eşleme dosyalarıyla ilgili ayrıntılar için bkz.
Dokunmatik cihazlar).
Dokunmatik ekranlı giriş cihazı, uygun tuş eşlemesini belirtmeli
her tuş için
VIRTUAL
işaretini kullanın. - Sanal yazılım tuşları,
ana dokunmatik ekran (Nexus S'deki gibi), çekirdek cihaz sürücüsü veya
rötuşları Linux anahtar kodlarına dönüştürmekten sorumludur.
giriş sistemi, tuş düzen dosyasını kullanarak Android anahtar kodlarına çevrilir.
Kapasitif düğme giriş cihazının tuş düzeni dosyası
ve her anahtar için
VIRTUAL
işaretini ekleyin.
Sanal tuşlar, cihazın fiziksel olarak yakınında veya yakınında olduğunda bir düğmeye basarken, kullanıcının kolayca bir düğmeye bastığını ekranın alt kısmına yakın bir yere dokunulduğunda veya parmağınızı yukarıdan aşağıya kaydırırken ya da aşağıdan yukarıya doğru hareket edebilir. Bunu önlemek için giriş sistemi, sanal tuşlu tuşlara basma işleminin kısa bir süreliğine yok sayılacağı şekilde geri alma dokunulduktan sonra gerçekleştirilen son temastan sonra geçen süre (bu gecikmeye sanal anahtar sessiz süresi) içerir.
Sanal yazılım tuşu geri döndürmesini etkinleştirmek için:
- Dokunmatik ekran veya kapasitif düğme için bir tuş düzen dosyası sağlayın
her tuş için
VIRTUAL
işareti ayarlanmış bir giriş cihazı kullanın.key 139 MENU VIRTUAL key 172 HOME VIRTUAL key 158 BACK VIRTUAL key 217 SEARCH VIRTUAL
-
çerçeve
config.xml
kaynağı.<!-- Specifies the amount of time to disable virtual keys after the screen is touched to filter out accidental virtual key presses due to swiping gestures or taps near the edge of the display. May be 0 to disable the feature. It is recommended that this value be no more than 250 ms. This feature should be disabled for most devices. --> <integer name="config_virtualKeyQuietTimeMillis">250</integer>
Doğrulama
Anahtar düzeni dosyalarınızı Tuş Eşlemelerini Doğrula aracı.