19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007-2008 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); you may not 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * use this file except in compliance with the License. You may obtain a copy of 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * License for the specific language governing permissions and limitations under 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.view.inputmethod; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19d68478467e3f837511196c80891d7245d0e163dfDianne Hackbornimport android.annotation.SdkConstant; 20d68478467e3f837511196c80891d7245d0e163dfDianne Hackbornimport android.annotation.SdkConstant.SdkConstantType; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.inputmethodservice.InputMethodService; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder; 234df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Projectimport android.os.ResultReceiver; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The InputMethod interface represents an input method which can generate key 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * events and text, such as digital, email addresses, CJK characters, other 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * language characters, and etc., while handling various input events, and send 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the text back to the application that requests text input. See 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link InputMethodManager} for more general information about the 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * architecture. 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Applications will not normally use this interface themselves, instead 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * relying on the standard interaction provided by 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.widget.TextView} and {@link android.widget.EditText}. 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Those implementing input methods should normally do so by deriving from 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link InputMethodService} or one of its subclasses. When implementing 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * an input method, the service component containing it must also supply 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a {@link #SERVICE_META_DATA} meta-data field, referencing an XML resource 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * providing details about the input method. All input methods also must 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * require that clients hold the 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.Manifest.permission#BIND_INPUT_METHOD} in order to interact 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * with the service; if this is not required, the system will not use that 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * input method, because it can not trust that it is not compromised. 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>The InputMethod interface is actually split into two parts: the interface 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * here is the top-level interface to the input method, providing all 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * access to it, which only the system can access (due to the BIND_INPUT_METHOD 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * permission requirement). In addition its method 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #createSession(android.view.inputmethod.InputMethod.SessionCallback)} 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can be called to instantate a secondary {@link InputMethodSession} interface 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * which is what clients use to communicate with the input method. 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface InputMethod { 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This is the interface name that a service implementing an input 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * method should say that it supports -- that is, this is the action it 59d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * uses for its intent filter. 60d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * To be supported, the service must also require the 61d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * {@link android.Manifest.permission#BIND_INPUT_METHOD} permission so 62d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * that other applications can not abuse it. 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 64d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn @SdkConstant(SdkConstantType.SERVICE_ACTION) 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String SERVICE_INTERFACE = "android.view.InputMethod"; 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Name under which an InputMethod service component publishes information 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * about itself. This meta-data must reference an XML resource containing 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * an 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <code><{@link android.R.styleable#InputMethod input-method}></code> 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * tag. 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final String SERVICE_META_DATA = "android.view.im"; 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public interface SessionCallback { 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void sessionCreated(InputMethodSession session); 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Called first thing after an input method is created, this supplies a 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * unique token for the session it has with the system service. It is 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * needed to identify itself with the service to validate its operations. 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This token <strong>must not</strong> be passed to applications, since 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * it grants special priviledges that should not be given to applications. 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>Note: to protect yourself from malicious clients, you should only 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * accept the first token given to you. Any after that may come from the 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * client. 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void attachToken(IBinder token); 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bind a new application environment in to the input method, so that it 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * can later start and stop input processing. 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Typically this method is called when this input method is enabled in an 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * application for the first time. 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param binding Information about the application window that is binding 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to the input method. 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see InputBinding 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see #unbindInput() 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void bindInput(InputBinding binding); 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unbind an application environment, called when the information previously 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * set by {@link #bindInput} is no longer valid for this input method. 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Typically this method is called when the application changes to be 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * non-foreground. 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void unbindInput(); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is called when the application starts to receive text and it 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is ready for this input method to process received events and send result 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * text back to the application. 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param inputConnection Optional specific input connection for 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * communicating with the text box; if null, you should use the generic 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * bound input connection. 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param info Information about the text box (typically, an EditText) 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that requests input. 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see EditorInfo 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void startInput(InputConnection inputConnection, EditorInfo info); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * This method is called when the state of this input method needs to be 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * reset. 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p> 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Typically, this method is called when the input focus is moved from one 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * text box to another. 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param inputConnection Optional specific input connection for 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * communicating with the text box; if null, you should use the generic 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * bound input connection. 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param attribute The attribute of the text box (typically, a EditText) 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * that requests input. 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see EditorInfo 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void restartInput(InputConnection inputConnection, EditorInfo attribute); 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Create a new {@link InputMethodSession} that can be handed to client 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * applications for interacting with the input method. You can later 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * use {@link #revokeSession(InputMethodSession)} to destroy the session 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * so that it can no longer be used by any clients. 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param callback Interface that is called with the newly created session. 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void createSession(SessionCallback callback); 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Control whether a particular input method session is active. 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param session The {@link InputMethodSession} previously provided through 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SessionCallback.sessionCreated() that is to be changed. 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setSessionEnabled(InputMethodSession session, boolean enabled); 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Disable and destroy a session that was previously created with 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #createSession(android.view.inputmethod.InputMethod.SessionCallback)}. 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * After this call, the given session interface is no longer active and 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * calls on it will fail. 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param session The {@link InputMethodSession} previously provided through 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * SessionCallback.sessionCreated() that is to be revoked. 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void revokeSession(InputMethodSession session); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1804df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * Flag for {@link #showSoftInput}: this show has been explicitly 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * requested by the user. If not set, the system has decided it may be 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * a good idea to show the input method based on a navigation operation 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * in the UI. 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int SHOW_EXPLICIT = 0x00001; 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1884df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * Flag for {@link #showSoftInput}: this show has been forced to 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * happen by the user. If set, the input method should remain visible 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * until deliberated dismissed by the user in its UI. 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int SHOW_FORCED = 0x00002; 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Request that any soft input part of the input method be shown to the user. 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 1974df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * @param flags Provides additional information about the show request. 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Currently may be 0 or have the bit {@link #SHOW_EXPLICIT} set. 1994df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * @param resultReceiver The client requesting the show may wish to 2004df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * be told the impact of their request, which should be supplied here. 2014df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * The result code should be 2024df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_UNCHANGED_SHOWN InputMethodManager.RESULT_UNCHANGED_SHOWN}, 2034df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_UNCHANGED_HIDDEN InputMethodManager.RESULT_UNCHANGED_HIDDEN}, 2044df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_SHOWN InputMethodManager.RESULT_SHOWN}, or 2054df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_HIDDEN InputMethodManager.RESULT_HIDDEN}. 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2074df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project public void showSoftInput(int flags, ResultReceiver resultReceiver); 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Request that any soft input part of the input method be hidden from the user. 2114df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * @param flags Provides additional information about the show request. 2124df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * Currently always 0. 2134df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * @param resultReceiver The client requesting the show may wish to 2144df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * be told the impact of their request, which should be supplied here. 2154df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * The result code should be 2164df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_UNCHANGED_SHOWN InputMethodManager.RESULT_UNCHANGED_SHOWN}, 2174df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_UNCHANGED_HIDDEN InputMethodManager.RESULT_UNCHANGED_HIDDEN}, 2184df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_SHOWN InputMethodManager.RESULT_SHOWN}, or 2194df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project * {@link InputMethodManager#RESULT_HIDDEN InputMethodManager.RESULT_HIDDEN}. 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2214df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project public void hideSoftInput(int flags, ResultReceiver resultReceiver); 222ab751aa085433e9f735d2e7603459c6c7e9d2fb0satok 223ab751aa085433e9f735d2e7603459c6c7e9d2fb0satok /** 224ab751aa085433e9f735d2e7603459c6c7e9d2fb0satok * Notify that the input method subtype is being changed in the same input method. 225ab751aa085433e9f735d2e7603459c6c7e9d2fb0satok * @param subtype New subtype of the notified input method 226ab751aa085433e9f735d2e7603459c6c7e9d2fb0satok */ 227ab751aa085433e9f735d2e7603459c6c7e9d2fb0satok public void changeInputMethodSubtype(InputMethodSubtype subtype); 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 229