国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

android多屏觸摸相關(guān)的詳解方案-安卓framework開發(fā)手機(jī)車載車機(jī)系統(tǒng)開發(fā)課程

這篇具有很好參考價(jià)值的文章主要介紹了android多屏觸摸相關(guān)的詳解方案-安卓framework開發(fā)手機(jī)車載車機(jī)系統(tǒng)開發(fā)課程。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景

直播免費(fèi)視頻課程地址:https://www.bilibili.com/video/BV1hN4y1R7t2/

在做雙屏相關(guān)需求開發(fā)過程中,經(jīng)常會有對兩個(gè)屏幕都要求可以正確觸摸的場景。但是目前我們模擬器默認(rèn)創(chuàng)建的雙屏其實(shí)是沒有辦法進(jìn)行觸摸的
android多屏觸摸相關(guān)的詳解方案-安卓framework開發(fā)手機(jī)車載車機(jī)系統(tǒng)開發(fā)課程,input,android,安卓framework開發(fā),車載系統(tǒng),多窗口,android系統(tǒng),多屏,觸摸

修改方案1

靜態(tài)修改方案
使用命令查看display2即副屏的信息情況
adb shell dumpsys display

  Display 2:
    mDisplayId=2
    mPhase=1
    mLayerStack=2
    mHasContent=true
    mDesiredDisplayModeSpecs={baseModeId=2 allowGroupSwitching=false primaryRefreshRateRange=[0 Infinity] appRequestRefreshRateRange=[0 Infinity]}
    mRequestedColorMode=0
    mDisplayOffset=(0, 0)
    mDisplayScalingDisabled=false
    mPrimaryDisplayDevice=HDMI Screen
    mBaseDisplayInfo=DisplayInfo{"HDMI Screen", displayId 2", displayGroupId 0, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_PRESENTATION, FLAG_TRUSTED, real 1440 x 2960, largest app 1440 x 2960, smallest app 1440 x 2960, appVsyncOff 2000000, presDeadline 75, mode 2, defaultMode 2, modes [{id=2, width=1440, height=2960, fps=1.3333333E7, alternativeRefreshRates=[]}], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[], mMaxLuminance=500.0, mMaxAverageLuminance=500.0, mMinLuminance=0.0}, userDisabledHdrTypes [], minimalPostProcessingSupported false, rotation 0, state ON, type EXTERNAL, uniqueId "local:4619827551948147201", app 1440 x 2960, density 560 (215152.0 x 214811.02) dpi, layerStack 2, colorMode 0, supportedColorModes [0], address {port=1, model=0x401cecae7d6e8a}, deviceProductInfo DeviceProductInfo{name=EMU_display_1, manufacturerPnpId=GGL, productId=4660, modelYear=null, manufactureDate=ManufactureDate{week=12, year=2021}, connectionToSinkType=0}, removeMode 0, refreshRateOverride 0.0, brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 0.5, installOrientation ROTATION_0}

這里主要看對應(yīng)的uniqueId “l(fā)ocal:4619827551948147201”

然后結(jié)合input中需要這個(gè)uniqueId,更新地方:


2: virtio_input_multi_touch_7
      Classes: TOUCH | TOUCH_MT | SWITCH
      Path: /dev/input/event8
      Enabled: true
      Descriptor: e1c836c7be888adb29ca6646292e486f96461e97
      Location: virtio17/input0
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0006, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: 
      KeyCharacterMapFile: 
      ConfigurationFile: /vendor/usr/idc/virtio_input_multi_touch_7.idc
      VideoDevice: <none>

就是這個(gè) ConfigurationFile: /vendor/usr/idc/virtio_input_multi_touch_7.idc

去源碼的out路徑下修改/aosp/out/target/product/emulator_x86_64/vendor/usr/idc/virtio_input_multi_touch_7.idc
主要把touch.displayId 變成上面的獲取的local:4619827551948147201

device.internal = 1

touch.deviceType = touchScreen
touch.orientationAware = 1

cursor.mode = navigation
cursor.orientationAware = 1

# This displayID matches the unique ID of the virtual display created for Emulator.
# This will indicate to input flinger than it should link this input device
# with the virtual display.
touch.displayId = local:4619827551948147201  

再進(jìn)行整體編譯即可以

修改方案2

動態(tài)修改方案
思路通過調(diào)用input中相關(guān)方法對config進(jìn)行相關(guān)修改
對應(yīng)方法如下:
android多屏觸摸相關(guān)的詳解方案-安卓framework開發(fā)手機(jī)車載車機(jī)系統(tǒng)開發(fā)課程,input,android,安卓framework開發(fā),車載系統(tǒng),多窗口,android系統(tǒng),多屏,觸摸

即只需要通過這個(gè)方法即可以指定觸摸的input —》對應(yīng)顯示display進(jìn)行映射
注意這里使用是port阿,不是displayId
port也可以通過dumpsys display查看哈:
在對應(yīng)的address有對于的port值,一般就是第一個(gè)屏幕0,第二屏幕1

address {port=1, model=0x401cecae7d6e8a}, deviceProductInfo DeviceProductInfo{name=EMU_display_1, manufacturerPnpId=GGL, productId=4660, modelYear=null, manufactureDate=ManufactureDate{week=12, year=2021}

確定了了display的port還有一個(gè)input相關(guān)inputPort參數(shù),這個(gè)就直接通過dumpsy input獲取哈,在dumpsys尋找對應(yīng)屏幕的event,從而找到對應(yīng)的Device

 2: virtio_input_multi_touch_7
      Classes: TOUCH | TOUCH_MT | SWITCH
      Path: /dev/input/event8
      Enabled: true
      Descriptor: e1c836c7be888adb29ca6646292e486f96461e97
      Location: virtio17/input0
      ControllerNumber: 0
      UniqueId: 
      Identifier: bus=0x0006, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: 
      KeyCharacterMapFile: 
      ConfigurationFile: /vendor/usr/idc/virtio_input_multi_touch_7.idc
      VideoDevice: <none>

就是這里的 Location: virtio17/input0,virtio17/input0就是我們要的

做好一個(gè)動態(tài)調(diào)用觸發(fā),這里直接也使用dumpsys input命令里面進(jìn)行:

commit 72193cfb966307940457148bedc793c316d67af5 (HEAD)
Author: Your Name <you@example.com>
Date:   Fri Aug 25 17:23:22 2023 +0800

    add displayfortouch modify

diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index 72612a0468cd..587a7b313b8f 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -2678,6 +2678,14 @@ public class InputManagerService extends IInputManager.Stub
         if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return;
 
         pw.println("INPUT MANAGER (dumpsys input)\n");
+        pw.println("INPUT MANAGER args size = "+args.length + "\n");
+        if (args.length == 3 && args[0].equals("displayForInput")) {
+            String location = args[1];
+            int port = Integer.parseInt(args[2]);
+            addPortAssociation(location,port);
+            pw.println("INPUT MANAGER addPortAssociation location= "+location +" port = " +port+ " \n");
+            return;
+        }
         String dumpStr = mNative.dump();
         if (dumpStr != null) {
             pw.println(dumpStr);


最后使用命令:
adb shell dumpsys input displayForInput virtio17/input0 1文章來源地址http://www.zghlxwxcb.cn/news/detail-680959.html

到了這里,關(guān)于android多屏觸摸相關(guān)的詳解方案-安卓framework開發(fā)手機(jī)車載車機(jī)系統(tǒng)開發(fā)課程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • win10安裝安卓子系統(tǒng)android13肯定成功補(bǔ)充說明Win1022H2安裝WSA安卓子系統(tǒng)部署失敗0x80073CF3無法進(jìn)行更新、相關(guān)性或沖突驗(yàn)證Xaml.2.8解決方案

    win10安裝安卓子系統(tǒng)android13肯定成功補(bǔ)充說明Win1022H2安裝WSA安卓子系統(tǒng)部署失敗0x80073CF3無法進(jìn)行更新、相關(guān)性或沖突驗(yàn)證Xaml.2.8解決方案

    說明:該文章為我之前的文章的一個(gè)補(bǔ)充說明,也是由于最近系統(tǒng)出了問題后,進(jìn)行了更新到Win10最新系統(tǒng)后,出現(xiàn)的一些問題,并做了以下的一些記錄: 這里呢,我是昨天重新下載并更新了系統(tǒng)為22H2,所以,我還在用之前的安卓子系統(tǒng)時(shí),出現(xiàn)了問題,無法部署成功,“部

    2024年02月20日
    瀏覽(24)
  • Android Framework——Binder 監(jiān)控方案

    Android Framework——Binder 監(jiān)控方案

    作者:低性能JsonCodec 在 Android 應(yīng)用開發(fā)中,Binder 可以說是使用最為普遍的 IPC 機(jī)制了。我們考慮監(jiān)控 Binder 這一 IPC 機(jī)制,一般是出于以下兩個(gè)目的: 卡頓優(yōu)化:IPC 流程完整鏈路較長,且依賴于其他進(jìn)程,耗時(shí)不可控,而 Binder 調(diào)用本身通常又是以 RPC 形式對外提供能力的,

    2024年02月04日
    瀏覽(20)
  • android framework實(shí)戰(zhàn)開發(fā)之WINDOWING_MODE_FREEFORM自由窗口相關(guān)

    android framework實(shí)戰(zhàn)開發(fā)之WINDOWING_MODE_FREEFORM自由窗口相關(guān)

    hi,粉絲朋友們! 今天開始就進(jìn)入正式的自由窗口的相關(guān)的內(nèi)容講解,blog只是一些知識點(diǎn)的記錄,更多的干貨,還請看馬哥的視頻,及視頻配套資料。 b站免費(fèi)視頻教程講解: https://www.bilibili.com/video/BV1wj411o7A9/ aosp默認(rèn)并沒有公開自由窗口模式,如果需要體驗(yàn)自由窗口模式必須

    2024年02月06日
    瀏覽(21)
  • Android Framework 常見解決方案(20)UDP廣播無效問題

    該問題同時(shí)存在于android App和Framework系統(tǒng)中。最終效果是在Android系統(tǒng)中直接使用UDP廣播無效,有意思的是有的android系統(tǒng)可以,有的Android 系統(tǒng)不行。然而該部分代碼自己在Linux上測試時(shí)是有效的,代碼不變,只是簡單的編譯移植過來就變得莫名其妙的不行了,頭還真是大的不

    2024年02月12日
    瀏覽(20)
  • Android Framework 常見解決方案(24)屏蔽FallbackHome,去除 Android正在啟動,直接進(jìn)入Launcher

    開機(jī)以后,設(shè)備會有一個(gè)“android正在啟動”這樣的彈框,這個(gè)界面是一個(gè)叫FallbackHome的Activity來展示的。FallbackHome機(jī)制是Android系統(tǒng)啟動過程中的一種降級處理機(jī)制。當(dāng)系統(tǒng)啟動時(shí),如果默認(rèn)的Launcher應(yīng)用無法正常加載或出現(xiàn)錯(cuò)誤,系統(tǒng)會自動啟用FallbackHome來替代默認(rèn)Launcher。

    2024年01月24日
    瀏覽(23)
  • 千里馬android framework車機(jī)車載手機(jī)智能駕駛雙屏互動實(shí)現(xiàn)方案

    千里馬android framework車機(jī)車載手機(jī)智能駕駛雙屏互動實(shí)現(xiàn)方案

    今年車展上,網(wǎng)友蚱蜢同學(xué)帶回來了一些車載rom相關(guān)的一些素材,剛好也發(fā)布了wms/ams專題課程,有粉絲朋友提供了一個(gè)車機(jī)的雙屏互動的產(chǎn)品交互視頻如下: 上面的就是車機(jī)兩個(gè)屏幕的互動聯(lián)動情況,轉(zhuǎn)化成設(shè)計(jì)圖如下: 這里對在個(gè)雙屏需求進(jìn)行要點(diǎn)細(xì)分: 1、通過多手指

    2024年02月16日
    瀏覽(25)
  • Android Graphics 多屏同顯/異顯

    Android Graphics 多屏同顯/異顯

    “? 虧功一簣,未成丘山。鑿井九階,不次水澤。行百里者半九十,小狐汔濟(jì)濡其尾。故曰時(shí)乎,時(shí)不再來。終終始始,是謂君子。 ” 01 — 前言 隨著Android智能駕艙系統(tǒng)的普及各種信息交互、影音娛樂場景應(yīng)用的不斷創(chuàng)新, 需要Android?Framework開發(fā)人員更深入地了解多屏同顯

    2024年04月16日
    瀏覽(21)
  • 如何通過Android平臺的API實(shí)現(xiàn)5G網(wǎng)絡(luò)的支持 安卓系統(tǒng)版本和5g網(wǎng)絡(luò)相關(guān)【一】

    如何通過Android平臺的API實(shí)現(xiàn)5G網(wǎng)絡(luò)的支持 安卓系統(tǒng)版本和5g網(wǎng)絡(luò)相關(guān)【一】

    前面分享了兩篇5G基帶相關(guān)的移植修改博文。 安卓高通機(jī)型的基帶移植 修改 編譯的相關(guān) 增加信號 支持5G等【一】 安卓高通機(jī)型的基帶移植 修改 編譯的相關(guān) 增加信號 支持5G等【二】 今天的帖子聊聊安卓版本與5G網(wǎng)絡(luò)與機(jī)型和修改之間相關(guān)的話題。眾所周知,目前的機(jī)型基本

    2024年02月09日
    瀏覽(29)
  • uni-app打包后安卓不顯示地圖及相關(guān)操作詳解

    uni-app打包后安卓不顯示地圖及相關(guān)操作詳解

    新公司最近用uni-app寫app,之前的代碼有很多問題,正好趁著改bug的時(shí)間學(xué)習(xí)下uni-app。 使用uni-app在瀏覽器調(diào)試的時(shí)候,地圖是展示的,但是打包完成后,在app端是空白的。咱第一次寫app,啥也不懂啊不是。 附上一張瀏覽器調(diào)試的截圖: 安卓app上是空白頁,就不附圖了。 因?yàn)?/p>

    2024年02月11日
    瀏覽(111)
  • Android Automotive 14(2) 多屏模擬器

    Android Automotive 14(2) 多屏模擬器

    上篇說到AAOS14 (Android Automotive OS 14)環(huán)境搭建完畢,今天記錄一下操作模擬器多屏的過程。 從Android Automotive OS 14 Releases看,第一項(xiàng)更新重點(diǎn)介紹了 Car Framework Display and Window Manager ,比如在multi-user方面的更新: 從目前的新能源車型看,越來越多的車型,配置了豐富的車內(nèi)屏幕,

    2024年02月21日
    瀏覽(56)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包