日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

抖音接口授權(quán)是什么東西 抖音直播實時數(shù)據(jù)接口

抖音無障礙背景國家近期開展了無障礙建設(shè)活動 。為了積極響應(yīng)國家號召,為抖音視障用戶能夠得到更好的交互體驗,對抖音無障礙功能進行了專項治理和改造 。
無障礙模式下的使用方法抖音的無障礙功能實現(xiàn)主要是通過開啟 Google TalkBack(或第三方屏幕閱讀)功能,將用戶在屏幕上觸摸選中區(qū)域的內(nèi)容朗讀出來,使得視障人士可以根據(jù)朗讀的內(nèi)容獲取自己當(dāng)前操作區(qū)域的信息,從而提升視障人士的使用和交互體驗 。
常用的操作手勢:

  • 瀏覽某個 View:單擊
  • 點擊某個 View:雙擊
  • 沿某個方向滑動:雙指沿所需方向滑動
  • 順序瀏覽頁面:單指左右滑動
本文的目的使研發(fā)同學(xué)對無障礙功能有一個更加全面的認識和了解,方便研發(fā)同學(xué)進行無障礙功能的開發(fā) 。
本文將分為無障礙功能實現(xiàn)原理和無障礙功能實現(xiàn)實例兩部分進行介紹 。
無障礙功能實現(xiàn)原理系統(tǒng)結(jié)構(gòu)無障礙功能的實現(xiàn)需要以下三個部分的支持:輔助 App(例如 TalkBack)、被輔助 app(用戶使用的 app,例如抖音頭條等)以及系統(tǒng)服務(wù) AccessibilityManagerService,這三者之間的關(guān)系如下圖所示:

抖音接口授權(quán)是什么東西 抖音直播實時數(shù)據(jù)接口


從上圖中可以看出,以上的流程主要涉及到三個進程的通信 。輔助 app 和被輔助 app 不需要直接跟被輔助的 app 通信,而是通過 SystemServer 進行中轉(zhuǎn)通信,這個過程主要涉及到了四個 aidl 接口:
  • 被輔助 app->SystemServer(IAccessibilityManager.aidl)
當(dāng)被輔助 app 產(chǎn)生觸摸事件后,會通過該接口發(fā)送無障礙事件給 SystemServer 進程的 AccessibilityManagerService 。
  • SystemServer->輔助 app(IAccessibilityServiceClient.aidl)
當(dāng) SystemServer 接收到被輔助 app 發(fā)送的無障礙事件時,會將事件通過該接口傳遞給輔助 app(例如 TalkBack)進行處理 。
  • 輔助 app->SystemServer(IAccessibilityServiceConnection.aidl)
  • SystemServer->被輔助 app(IAccessibilityInteractionConnection.aidl)
當(dāng)需要被輔助 app 的某個 View 的信息時,可以通過這兩個接口的 findAccessibilityNodeInfosByViewId 方法實現(xiàn) 。
無障礙事件傳遞流程當(dāng)用戶觸摸屏幕時,會經(jīng)過以下的流程將觸摸事件傳遞給被觸摸的 View:

抖音接口授權(quán)是什么東西 抖音直播實時數(shù)據(jù)接口


下面本文將主要分析以上流程中四個重點部分的內(nèi)容:無障礙模式下的事件轉(zhuǎn)換、觸摸事件到 Activity 的傳遞過程、事件傳遞給具體的 View 的分發(fā)過程以及最終無障礙事件的執(zhí)行流程 。
1.無障礙模式下的事件轉(zhuǎn)換在 TalkBack 開啟的狀態(tài)下,由于 TalkBack 的無障礙服務(wù)中聲明了 android:canRequestTouchExplorationMode=”true”,因此開啟 TalkBack 后 AccessibilityManagerService 會更新 AccessibilityInputFilter 的FLAG_FEATURE_TOUCH_EXPLORATION(觸摸瀏覽)屬性置為 true 。

抖音接口授權(quán)是什么東西 抖音直播實時數(shù)據(jù)接口


在 FLAG_FEATURE_TOUCH_EXPLORATION 模式下會創(chuàng)建一個 TouchExplorer 對象 。AccessibilityInputFilter 繼承了 InputFilter,對輸入事件進行過濾,通過和 TouchExplorer 共同實現(xiàn) TalkBack 模式下的觸摸瀏覽手勢 。TouchExplorer 負責(zé)將普通觸摸事件轉(zhuǎn)換為觸摸瀏覽手勢,例如將 MotionEvent.ACTION_DOWN 事件轉(zhuǎn)換為 MotionEvent.ACTION_HOVER_ENTER(懸停事件) 。因此在 TalkBack 開啟的情況下,用戶單擊 View 時,App 執(zhí)行的是 ACTION_HOVER_ENTER 事件,雙擊 View 時才會執(zhí)行 ACTION_DOWN 事件 。
2.觸摸事件到 Activity 的傳遞過程在 Android 中,消息機制是 handler 機制,通過將消息封裝到 Message 中,并將該消息發(fā)送到 handler 所在的 MessageQueue 中,通過 Looper 不斷調(diào)用 MessageQueue 的 next 方法進行消息的處理 。

推薦閱讀