2011-01-05 72 views
1

我正在設計我的第一個Android IME並且有點不知所措。我的目標是與可訪問性相關的,因此我想知道是否我正在嘗試使用IME框架,而這是不可能的。我已經採用了默認的軟鍵盤示例,並使其與我的一些修改一起工作,所以我已經明確瞭解至少其中的一些內容,但是有關我嘗試的某些內容沒有太多文檔。這就是我的意思:輸入法中的光標移動和文本檢索

目前,只有觸摸屏鍵盤的Android手機無法訪問。我目前有一個可訪問的觸摸屏鍵盤,使用類似於IOS/VoiceOver中使用的方法,因此部分項目已經完成並且相當直接地在IME框架中完成。

目前,Android的輔助功能API不提供導航文本字段的可訪問反饋。也就是說,在安裝了Android屏幕閱讀器的情況下,如果您鍵入單詞「this」,您會在輸入時聽到單個角色的說話,但是如果您嘗試向左箭頭鍵入「s」,則不會說出。所以我想要捕捉動作併爲導航過的元素提供語音反饋。這是我開始遇到問題的地方。

我目前有用於向左和向右箭頭的語音反饋,使用getCurrentInputConnection.getTextBeforeCursor(1,0)左箭頭和類似的右箭頭調用。移動處理完成後,會獲得當前光標下的字符,並且一切都很好。

但是,我的挑戰來自於在各行之間上下跳動。理想情況下,我想抓住當前的文本行並說出來,但我認爲沒有辦法做到這一點。我唯一能想到的就是getTextBefore/AfterCursor(Integer.MAX_VALUE,0)的一些組合,並組合這些值,通過篩選前一個和下一個\ n來確定當前行。還有另一種方法 - 將字段的整個文本內容作爲單個文本塊並使用光標位置來確定哪一段文本代表當前行?我在各種輸入方法類中看到了關於提取文本的內容,似乎可能有一種方法來監視它,但我不知道這對我是否有用(即,是否會返回整個字段內容?)

我的下一個目標是提供標準的文本導航功能。 Android可訪問性目前不包含觸摸屏瀏覽功能,因此無法滾動大塊文本。我不一定希望人們在他們的手機上寫小說,但我想提供快速的手勢或命令來移動上/下段落,以及移到較長字段的頂部/底部。國際貨幣基金組織是否提供光標移動的方法,還是超出其權限?

回答

0

老實說,我沒有拿到第一部分:(

關於第二個問題,你將需要手工來處理它。 例如,添加一鍵用下來繪製,並使其發揮作用你將需要:

  • 在對代碼onKey方法檢查
  • 如果是20,你應該做的關鍵事件的sendDownUpKeyEvents