Я использую сервис специальных возможностей, чтобы найти кнопку на экране и щелкнуть ее, но по какой-то причине я получаю следующее сообщение об ошибке:
java.lang.IllegalStateException: Cannot perform this action on a not sealed instance.
at android.view.accessibility.AccessibilityNodeInfo.enforceSealed(AccessibilityNodeInfo.java:3046)
at android.view.accessibility.AccessibilityNodeInfo.findAccessibilityNodeInfosByText(AccessibilityNodeInfo.java:1529)
at com.myapp.adapters.Adapter_Click$11.run(Adapter_Click.java:1874)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Method.java:-2)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
И строка, к которой она относится:
List<AccessibilityNodeInfo> list = source.findAccessibilityNodeInfosByText("Accept".toLowerCase());
И затем я использую это, чтобы нажать на кнопку:
if (view.performAction(AccessibilityNodeInfo.ACTION_CLICK))
{
Log.e(TAG, "Button clicked");
}
Я не видел никаких проблем с этим в течение последнего года, пока я только недавно не обновился до AndroidX.Есть ли способ проверить, является ли это запечатанным экземпляром, прежде чем пытаться щелкнуть по нему?Я даже попытался обернуть его в попытку / поймать, и это все еще не работает мое приложение.