AccessibilityService
を別のアプリケーションのEditText
に貼り付けるには、自分のアプリで使用しています。これは通常のケースで正常に動作しますアクセシビリティNodeInfo.performAction()メソッドが動作しない場合があります
Bundle bundle = new Bundle();
bundle.putInt(AccessibilityNodeInfo.ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT,
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD);
bundle.putBoolean(AccessibilityNodeInfo.ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN,
true);
eventSource.performAction(AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY,
bundle);
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("text", stringToCopy);
clipboard.setPrimaryClip(clip);
eventSource.performAction(AccessibilityNodeInfo.ACTION_PASTE);
私は同じことを達成するために、次のコードを使用しています
、。私は
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
を使用してAccessibilityService
からAlertDialog
を開き、ダイアログのボタンを押し上で上記のコードを実行したときただし、が異常動作します。
ケース1:罰金作品とテキストは、ダイアログ
ケースから貼り付けます 2:テキストを貼り付けますが、選択がなされていないため、前の単語は、フィールド
ケース3のまま:何も起こらず、ただダイアログが消える。
ただし、すべての場合、テキストはクリップボードにコピーされ、手動で貼り付けることができます。
手がかりはありますか?