Android 9 ve önceki sürümlerde birden fazla ekranla etkileşimde bulunmak mümkün değildi Ekran ve giriş arasında ilişkilendirme mekanizması olmadığından, dokunma yoluyla cihazlar. Örneğin, dokunmatik ekranlı bir ekran HDMI video çıkışı sağlayabilir (Android'de ekran olarak kaydedilir) ve dokunmatik ekran için USB çıkışı (bir giriş cihazı olarak kaydedilir). Birden fazla cihaz Bu şekilde, hangi giriş cihazının hangi cihaza ait olduğunu belirlemenin hangi ekran olduğunu. Aynı sorun birden fazla yerleşik özelliği olan katlanabilir cihazlar için de geçerli. görüntüler.
Android 10, hangi girişin girileceğini belirten bir mekanizma ekledi cihazın ait olduğu cihaz türü. İlişkilendirme, aşağıdaki bağlantı noktası numaralarıyla bağlantı noktası, bir ekranın bağlı olduğu fiziksel bağlantı noktasını belirtir.
Örneğin, bir Android cihazda hdmi1
etiketli iki HDMI bağlantı noktası varsa
ve hdmi2
için görüntüleme bağlantı noktası değerleri 1
ve
2
. Aynı fiziksel HDMI bağlantı noktasına farklı bir ekran (ör. farklı ekran modeli veya üretici) bağlansa bile bağlantı noktası değerleri aynı kalır. Bu sayede cihaz üreticileri, ekranları birleştirme ve yükseltmeyle ilgili talimatlar sağlayabilir.
İlişkilendirme /vendor/etc/input-port-associations.xml
ürününde yapılandırıldı.
Örnek:
<ports>
<port display="0" input="usb-xhci-hcd.0.auto-1.1/input0" />
<port display="1" input="usb-xhci-hcd.0.auto-1.2/input0" />
</ports>
Yukarıdaki örnekte display="0"
, ekranın bağlı olduğu bağlantı noktasını belirtir. input="usb-xhci-hcd.0.auto-1.1/input0"
.
giriş cihazının bağlı olduğu bağlantı noktasını belirtir. Bağlantı noktalarını belirlemek için
aşağıdaki terminal komutunu kullanın, ardından
bu cihazların location
özelliğini, Etkinlik Merkezi Durumu'nda inceleyin.
adb shell dumpsys input
Birçok cihaz bağlıysa Giriş Yöneticisi Durumu'ndaki RecentQueue
dizisini incelemek için belirli bir cihaza dokunun. Bu sayede,
ara hedeflerin
en son etkinliği oluşturan cihazlar. Daha sonra
etkinliğindeki ilgili cihazı kontrol eder.
Bağlı ekranlara atanan ekran bağlantı noktalarını belirlemek için adb shell dumpsys display
'ü kullanın ve ardından Ekran Cihazları altında her ekran için DisplayDeviceInfo
mülkündeki address
mülkünü bulun.
Alternatif olarak, döküm için adb shell dumpsys SurfaceFlinger --display-id
komutunu kullanın
kimlik bilgilerini girin. Şu kaynakları da inceleyin
Statik görüntülü reklam tanımlayıcıları.
Belirli bir giriş cihazı için bir ilişkilendirme belirtirseniz ve ilgili ekran sistemde yoksa ilgili ekran görünene kadar giriş cihazı devre dışı bırakılır. İlişkilendirme yalnızca dokunmatik cihazlar için yapılır.
Dinamik çoklu ekranlar için yönlendirme
Android 10, statik çoklu ekran oluşturmanıza olanak tanır cihazlar. Dinamik ilişkilendirmeler henüz etkin değil. Ancak bazı kullanım alanları bulunmayan ekranlar ve giriş panelleri için yönlendirme bilgileri sağlayarak Her zaman mevcut olan veya sanal giriş cihazları kullanan ve ardından ek yönlendirme sağlayan bu sanal cihazlara iletiyorum. Bir cihaz uygulaması aşağıdakileri destekliyorsa:
- Yerleşik istasyonla masaüstü benzeri bir deneyim, ardından bağlantı noktasına bağlı giriş aksesuarından (bağlantı noktasına göre benzersiz şekilde tanımlanır) harici ekrana (bağlantı noktasına göre tanımlanır) girişi hedeflemek için bir yönlendirme yapılandırması sağlanabilir.
- Bağlandığında giriş kaynağı (dokunmatik alan gibi) görevi gören birincil ekran harici ekrana bağlanıyorsa, hedef girişine yönelik bir yönlendirme yapılandırması sağlanabilir sanal dokunmatik panelden (benzersiz sanal kimlikle tanımlanır) harici ekrana (bağlantı noktasıyla tanımlanır).
Uygulama
- Fiziksel cihazlarda, ekranları dokunmatik ekranlarla eşleştirmek için giriş cihazının bağlı olduğu bağlantı noktası ve ekranın bağlı olduğu bağlantı noktası kullanılır.
- Eşlemeler
InputReaderConfiguration
içinde depolanır. TouchInputMapper.mViewport
, eşleşen görüntü alanına ayarlandıInputDevice.location
için belirtilen bağlantı noktası.- Eşleme dosyasında bir giriş cihazı bağlantı noktası belirtildiyse ve eşleşen bir görüntü bağlantı noktasına sahip bir görüntü alanı değilse devre dışı bırakılır.
- Belirli bir giriş cihazı için bağlantı noktası belirtilmezse görüntü alanı mevcut kurallara göre ayarlanmış olabilir.
- Giriş sürücülerinde çekirdek değişikliği gerekmez.
- Giriş cihazı bağlantı noktaları, EVIOCGPHYS ioctl kullanılarak belirlenir.