Страница 1 из 1

Эмуляция касаний

Добавлено: 27 май 2014, 11:47
Soft-Man
Добрый день. Извиняюсь за глупый вопрос... Возможно ли реализовать, что бы при нажатии кнопки, например Dpadleft, обрабатывать так как будто провел пальцем по экрану справа налево?

Re: Эмуляция касаний

Добавлено: 27 май 2014, 11:57
Foenix
а что произойдет, когда проведешь по экрану?

Re: Эмуляция касаний

Добавлено: 27 май 2014, 12:53
Soft-Man
В Talkback этот жест переводит курсор на предыдущий элемент. Нужно эмулировать эти жесты нажимая кнопки.

Re: Эмуляция касаний

Добавлено: 27 май 2014, 13:07
Foenix
извини, я не знаю что такое Talkback

спрашиваю потому, что не всегда нужно эмулировать это. Есть более правильные решения.

Re: Эмуляция касаний

Добавлено: 27 май 2014, 14:55
Soft-Man
https://play.google.com/store/apps/deta ... 3Dtalkback
конечно более правильно было бы хорошо порыться в сырцах самого Talkback, и кроме жеста прикрутить и кнопку, но пока не разобрался... И тут пришла мысль, а почему бы не с эмулировать эти жесты? Но погуглив не нашел нужной информации по эмуляции... Конечно может плохо искал... Решил спросить может кто сталкивался, или ссылочной поделиться на инфу хоть какую нибудь. Ведь есть программа siaxis controller там есть опция эмуляции касания, я так понимаю можно и жест сэмулировать значит

Re: Эмуляция касаний

Добавлено: 27 май 2014, 21:29
Foenix
у вас постановка задачи хромает. Я не понимаю причем тут ваша кнопка и эмуляция касания - это что ваша программа??

Re: Эмуляция касаний

Добавлено: 27 май 2014, 23:59
Soft-Man
Программа не моя. Цель: есть аппаратная кнопка "стрелочка влево" нужно при нажатии на нее сэмулировать жест "провести пальцем справа налево".
Попробовал сделать используя инфу отсюда http://blog.softteco.com/2011/02/touch- ... e.html?m=1
Сначала сервис при нажатии кнопки останавливался ругаясь на права, с ними вроде разобрался. Но результата не добился.
P. S. Еще раз извиняюсь за глупые вопросы, знаний мало и ковыряюсь когда есть время и желание. : (

Re: Эмуляция касаний

Добавлено: 28 май 2014, 00:53
rezak90
Soft-Man писал(а):Попробовал сделать используя инфу отсюда http://blog.softteco.com/2011/02/touch- ... e.html?m=1
Это юнит тесты которые вам вообще не нужны. Копайте в сторону gesture.

Re: Эмуляция касаний

Добавлено: 28 май 2014, 13:05
Soft-Man
что-то начало получаться:
Добавляю:

Код: Выделить всё

	Instrumentation inst = new Instrumentation();
	public void testHoldSwipe() {
		long downTime = SystemClock.uptimeMillis();
		long eventTime = SystemClock.uptimeMillis(); 
		float xStart = 15;
		float yStart = 50;
		float x0 = 220;
		float y0 = 50;

		
		inst.sendPointerSync(MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_DOWN, xStart, yStart, 0));
		
		inst.sendPointerSync(MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, x0, y0, 0));
		
		inst.sendPointerSync(MotionEvent.obtain(downTime, eventTime + 300, MotionEvent.ACTION_UP, x0, y0, 0));
	}
	
Вызываю:

Код: Выделить всё

			case KeyEvent.KEYCODE_DPAD_UP:
				new Thread(new Runnable() {
					public void run() {
						testHoldSwipe();
						}
					}).start();
				break;
Линию проводит, но TalkBack не реагирует... :(

Re: Эмуляция касаний

Добавлено: 28 май 2014, 13:45
rezak90
еще раз повторяю, вам нужно сделать свайп в юнит тестах?