diff --git a/core/api/test-current.txt b/core/api/test-current.txt index 8461fc1b7ae5e..df07ee351bbc1 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 2bc4f5ecb0d04..a0ce65ca09c0b 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);