Android InputMethod 教程

l_serein發表於2012-04-30
  結構
       繼承關係

       public interface InputMethod extends Object 
       android.view.inputmethod.InputMethod 

       類概述

       InputMethod 介面代表了輸入法,它可生成按鍵事件,生成文字,如數字,email 地址,CJK字元,其它語言字元等等。在處理輸入事件時,將文字返回至需要文字輸入的應用程式。InputMethodManager 可得到更多關於架構的資訊。應用程式通常不使用這個介面本身,而是依靠TextView和EditText提供的標準互動。輸入法實現通常為 InputMethodService 及其子類的派生。在實現輸入法時,包含它的服務控制元件必須提供 SERVICE_META_DATA 後設資料欄位,該後設資料欄位聯接至一包含輸入法細節的XML資源。所有輸入法也必定要求客戶端包含 BIND_INPUT_METHOD 以便與服務控制元件互動。如果不這樣,系統將無法使用輸入法,因其無法確認是否完整。InputMethod 介面實際上分為兩部分:介面是輸入法的最高階介面,提供所有的訪問,
只有系統能訪問(需要 BIND_INPUT_METHOD 許可權)。另外呼叫方法createSession(android.view.inputmethod.InputMethod.SessionCallback)可例項化,InputMethodSession 副介面,用於與客戶端通訊。

       內部類

       interface InputMethod.SessionCallback 

       常量
       public static final String SERVICE_INTERFACE

       介面名字,實現輸入法的服務應說明它支援輸入法,也就是它將用於意向過濾器(intent filter)。服務還需要BIND_INPUT_METHOD 許可權,這樣應用程式不會濫用它。
       常量值: "android.view.InputMethod" 

       public static final String SERVICE_META_DATA
       輸入法通過此名字釋出其自身資訊。此後設資料必須引用一個包含< input-method>標籤的XML 資源。
       常量值: "android.view.im"  

       public static final int SHOW_EXPLICIT
       用於showSoftInput(int, ResultReceiver)的標誌:它表示使用者顯式地要求其(軟鍵盤)顯示。如果沒有設定,系統決定可能是一個好主意,顯示輸入法在使用者介面上的導航操作。
       常量值: 1 (0x00000001) 

       public static final int SHOW_FORCED
       標誌用於 showSoftInput(int, ResultReceiver):表明使用者強制其(軟鍵盤)顯示。如設定,輸入法保持可見直至使用者在 UI 上取消。
       常量值: 2 (0x00000002) 

       公共方法

       public abstract void attachToken (IBinder token) 
       輸入法建立後首先被呼叫,它提供一個與系統服務會話的唯一令牌。它需要通過服務識別輸入法從而驗證其操作。令牌不能傳遞給應用程式,因其取得了應用程式不應得到的特殊許可權。
       注意:為避免惡意客戶端傷害,你應只接收第一個令牌。其後可能來自客戶端。

       public abstract void bindInput (InputBinding binding) 
       將輸入法與新的應用程式環境繫結,以便稍後啟動、停止輸入處理。通常在應用程式第一次啟用輸入法時呼叫此方法。

       引數
       binding與輸入法繫結的應用程式視窗資訊。

       參見
       InputBinding  
       unbindInput() 

       public abstract void createSession (InputMethod.SessionCallback callback) 
       建立一個新的 InputMethodSession,它可處理客戶應用程式與輸入法的互動。你可以隨後用 revokeSession(InputMethodSession)銷燬會話,這樣就不會有任何客戶端使用它。

        引數
        callback   新建立會話呼叫的介面。

       public abstract void hideSoftInput (int flags, ResultReceiver resultReceiver) 
        將輸入法的軟鍵盤(soft input)部分對使用者隱藏。

        引數
        flags    顯示要求的附加資訊。當前總是 0。
        resultReceiver    向要求顯示的客戶端通知結果。其結果可能為

相關文章