Introduce a custom intent action to close software keyboard
This CL introduces a custom intent action for apps to ask AOSP Keyboard to
close its software keyboard with guarding it with a signature-protected
permission.
Any app that is signed with the same signature as AOSP Keyboard can have
the following line in AndroidManifest.xml
<uses-permission
android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"/>
to request AOSP Keyboard to close its software keyboard as follows.
sendBroadcast(new Intent("com.android.inputmethod.latin.HIDE_SOFT_INPUT")
.setPackage("com.android.inputmethod.latin"));
Test: Manually verified with a test app.
Fixes: 65270710
Change-Id: I4fd2e3a7336ec66c70582a2f274a200cbf035a7f
diff --git a/java/AndroidManifest.xml b/java/AndroidManifest.xml
index 9bb16c7..dedece5 100644
--- a/java/AndroidManifest.xml
+++ b/java/AndroidManifest.xml
@@ -35,6 +35,23 @@
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY" />
+ <!-- A signature-protected permission to ask AOSP Keyboard to close the software keyboard.
+ To use this, add the following line into calling application's AndroidManifest.xml
+ <pre>
+ {@code
+ <uses-permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"/>
+ }
+ </pre>
+ then call {@link android.content.Context#sendBroadcast(Intent)} as follows:
+ <pre>
+ {@code
+ sendBroadcast(new Intent("com.android.inputmethod.latin.HIDE_SOFT_INPUT")
+ .setPackage("com.android.inputmethod.latin"));
+ }
+ </pre> -->
+ <permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"
+ android:protectionLevel="signature" />
+
<application android:label="@string/english_ime_name"
android:icon="@drawable/ic_launcher_keyboard"
android:supportsRtl="true"