私はAndroid用のUI自動化プラットフォームを開発しています。
何らかの理由で(非常にまれな)クリックイベントがドロップされることがあります
それが起こったとき、私はログに表示されます
I/InputDispatcher( 2707): Dropped event because input dispatch is disabled.
入力ディスパッチを有効にするために何ができるかを教えてください。
前もって感謝します
私はAndroid用のUI自動化プラットフォームを開発しています。
何らかの理由で(非常にまれな)クリックイベントがドロップされることがあります
それが起こったとき、私はログに表示されます
I/InputDispatcher( 2707): Dropped event because input dispatch is disabled.
入力ディスパッチを有効にするために何ができるかを教えてください。
前もって感謝します
InputDispatcherが入力イベントをドロップする特定の条件があります。
等
あなたの場合、その実行ケース4。何かがおかしくなっているか、最初の入力がまだ実行されていないことを意味します。したがって、入力ディスパッチャは無効になります。
ミドルウェアクラスInputDispatcher.cppの[メソッドdropInboundEventLockedを確認してください
画面がオフのときにのみ発生しました。クリックイベントは画面をオンにしましたが、イベントは画面をオンにするよりも速かったです。
今、画面がオフになっているかどうかを確認してオンにしています
//Acquire wake lock in case screen is off
if (PermissionsUtil.checkSelfPermission(getContext(), Manifest.permission.WAKE_LOCK))
{
PowerManager pm = (PowerManager)getContext().getSystemService(Context.POWER_SERVICE);
if (pm.isScreenOn() == false)
{
wakeLock = pm.newWakeLock((PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), TAG);
//
wakeLock.acquire();
Log.d(TAG,"Acquiring wake lock");
}
}
//Do my stuff
//Release wake lock in case it was acquire
if (wakeLock != null && wakeLock.isHeld())
{
wakeLock.release();
wakeLock = null;
Log.d(TAG,"Releasing wake lock");
}