Служба специальных возможностей Android - GestureDescription.Builder - Сложное перелистывание жестов отправлено неправильно - PullRequest
1 голос
/ 11 июля 2019

проблема в том, что Жест неправильно отправлен. Не все точки считываются.

Я пытался сделать смахивание прямоугольника. Если продолжительность длительная, она отправляется не идеально, но почти идеально.

Вот что я использую с https://codelabs.developers.google.com/codelabs/developing-android-a11y-service/#0

private void configureSwipeButton() {

        Button swipeButton = (Button) mLayout.findViewById(R.id.swipe);
        swipeButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                try {
                    Thread.sleep(1000);
                    GestureDescription.Builder gestureBuilder = new GestureDescription.Builder();
                    Path swipePath = new Path();
                        swipePath.moveTo(500, 500);
                        swipePath.lineTo(900, 500);
                        swipePath.lineTo(900, 900);
                        swipePath.lineTo(500, 900);
                        swipePath.lineTo(500, 500);

                    gestureBuilder.addStroke(new GestureDescription.StrokeDescription(swipePath, 0, 1500));

                    dispatchGesture(gestureBuilder.build(), null, null);
                }
                catch(Exception ex){
                    Toast.makeText(view.getContext(),ex.getMessage(),Toast.LENGTH_LONG).show();
                }
            }
        });
    }

Я пытался сделать это в приложении эскиза: https://play.google.com/store/apps/details?id=com.sonymobile.sketch&hl=en

Вот результат Длительности 1500: https://prntscr.com/odq1cn

Вот результат Длительности 1000: https://prntscr.com/odq2qj

Вот результат Длительности 500: https://prntscr.com/odq2xs

Вот результат Длительности 100: https://prntscr.com/odq3li

...