Как вызвать метод с атрибутом @hide из объекта?

Рейтинг: 1Ответов: 1Опубликовано: 18.02.2023

У меня есть объект класса AccessibilityWindowInfo. Из исходного кода этого класса можно понять, что в нем присутствует метод setRegionInScreen с атрибутом @hide

/**
* Sets the touchable region of this window in the screen.
 *
 * @param region The window region.
 *
 * @hide
*/
public void setRegionInScreen(Region region) {
    mRegionInScreen.set(region);
}

Из-за этого атрибута я не могу вызвать этот метод (получаю ошибку Unresolved reference: setRegionInScreen)

Как я могу вызвать этот метод у своего объекта?

Ответы

▲ 1Принят

На то он и @hide чтобы его не трогали.
Если уж очень надо и нет другого способа добиться желаемого - пробуйте вызывать через рефлексию. А-ля:

obj.getClass().getDeclaredMethod("setRegionInScreen", Region.class).invoke(obj, region)

Но будьте готовы к тому, что в других версиях ОС этого метода может не быть вообще, хотя кого этим удивишь в Андроид-зоопарке...