diff --git a/core/api/test-current.txt b/core/api/test-current.txt index cdb1510b388ed..e9f9136c768c8 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -3159,7 +3159,7 @@ package android.view.inputmethod { public final class InputMethodManager { method @RequiresPermission(android.Manifest.permission.TEST_INPUT_METHOD) public void addVirtualStylusIdForTestSession(); method public int getDisplayId(); - method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public java.util.List getInputMethodListAsUser(int); + method @NonNull @RequiresPermission(value=android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, conditional=true) public java.util.List getInputMethodListAsUser(int); method public boolean hasActiveInputConnection(@Nullable android.view.View); method @RequiresPermission(android.Manifest.permission.TEST_INPUT_METHOD) public boolean isInputMethodPickerShown(); method @RequiresPermission(android.Manifest.permission.TEST_INPUT_METHOD) public void setStylusWindowIdleTimeoutForTest(long); diff --git a/core/java/android/view/inputmethod/IInputMethodManagerGlobalInvoker.java b/core/java/android/view/inputmethod/IInputMethodManagerGlobalInvoker.java index 1afa98769a5a8..eb0f540fc0759 100644 --- a/core/java/android/view/inputmethod/IInputMethodManagerGlobalInvoker.java +++ b/core/java/android/view/inputmethod/IInputMethodManagerGlobalInvoker.java @@ -212,6 +212,7 @@ final class IInputMethodManagerGlobalInvoker { @AnyThread @NonNull + @RequiresPermission(value = Manifest.permission.INTERACT_ACROSS_USERS_FULL, conditional = true) static List getInputMethodList(@UserIdInt int userId, @DirectBootAwareness int directBootAwareness) { final IInputMethodManager service = getService(); diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 9106ce27c27c4..e69365d49f99e 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -1549,13 +1549,16 @@ public final class InputMethodManager { /** * Returns the list of installed input methods for the specified user. * + *

{@link Manifest.permission#INTERACT_ACROSS_USERS_FULL} is required when and only when + * {@code userId} is different from the user id of the current process.

+ * * @param userId user ID to query * @return {@link List} of {@link InputMethodInfo}. * @hide */ @TestApi - @RequiresPermission(INTERACT_ACROSS_USERS_FULL) @NonNull + @RequiresPermission(value = Manifest.permission.INTERACT_ACROSS_USERS_FULL, conditional = true) public List getInputMethodListAsUser(@UserIdInt int userId) { return IInputMethodManagerGlobalInvoker.getInputMethodList(userId, DirectBootAwareness.AUTO);