Обработка нажатия аппаратных кнопок на ТСД в мобильной платформе

0. dewersia 349 11.04.19 08:19 Сейчас в теме
Обработка и передача события нажатия аппаратных клавиш на Android в мобильную платформу 1С.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. MarryJane 25 11.04.19 11:25 Сейчас в теме
Скажите, все так же требуется дорабатывать файлик
Android\prjandroid-arm\bin\permissions.xml. Или уже можно не трогать его.
2. dewersia 349 11.04.19 19:35 Сейчас в теме
К сожалению пока все так же. Руки никак не дойдут еще раз все разобрать.
3. plutonii 18.05.19 01:45 Сейчас в теме
Здравствуйте. Попал в руки интересный ТСД по цене/характеристика Атол SMART.LITE на Андройд 7.
Для него сервис не писали?
Готов поучаствовать в тестировании данного сервиса. Документация и SDK производителя есть. Сервис, который Вы писали для Атол Дройд на Андройде 4 на нем работать не стал, событие не перехватывается.
4. dewersia 349 20.05.19 11:55 Сейчас в теме
(3) Добрый день. Странно, а сервис выдает какую-то ошибку при запуске или нет? И приложение собирали сборщиком?
5. plutonii 20.05.19 17:34 Сейчас в теме
(4) Добрый. На основе вашей первой публикации был написан драйвер для Смарт.Дройд Атол, событие отрабатывало из 1С. Потом привезли Смарт Лайт - там Андройд другой уже. Приложение под дройд ставится как служба, но событие не срабатывает. Вот по этой ссылке SDK на этот терминал сбора данных https://yadi.sk/d/DOLFmXILYT2gyw
7. plutonii 27.05.19 12:15 Сейчас в теме
8. dewersia 349 27.05.19 12:48 Сейчас в теме
(7)Добрый день, пути в разработке лучше использовать только с латинскими буквами. По поводу первого вопроса, я постараюсь посмотреть на этой неделе.
17. plutonii 03.06.19 13:23 Сейчас в теме
(8) Здравствуйте. Удалось посмотреть? Без работающего сканера сыпется вся логика приложения 1С в моем вопросе((((
18. plutonii 30.07.19 16:49 Сейчас в теме
(8)
Здравствуйте, удалось прикрутить ТСД с мобилке. Событие 1 эской перехватывается при сканировании, но когда приложение открыто( Не могли бы помочь - сделать чтобы приложение запускалось на ТСД как служба? исходники могу скинуть в любое место. Спасибо.
28. olejnikov_m 42 08.11.19 11:00 Сейчас в теме
(3) Добрый день. Получилось у вас подключить Атол SMART.LITE на Андройд 7.?
6. MORT32Ram 11 27.05.19 07:27 Сейчас в теме
Не работает, служба ставится, включается. В 1С мобильное приложение код добавил, не реагирует.

версия мобильной платформы 8.3.14.53
9. dewersia 349 27.05.19 12:50 Сейчас в теме
(6)Добрый день, не забыли поправить файл permissions? И собирали сборщиком?
10. MORT32Ram 11 28.05.19 03:06 Сейчас в теме
Здравствуйте, менял несколько раз, ставил через отладку, так же пробовал удалять платформу и ставить ее через апк тоже результата ноль.
Там путь к файлу сейчас другой, такого вида - \mobile_8_3_14_53\Android\prjandroid-arm.zip
11. MORT32Ram 11 28.05.19 03:42 Сейчас в теме
(10)Не так немного про путь, в самом prjandroid-arm.zip сейчас папки bin нет, и permissions находится в корне prjandroid-arm.zip не знаю насколько это критично. Сборщиком собирать обязательно?
12. dewersia 349 28.05.19 10:25 Сейчас в теме
(11)Да сборщиком собирать обязательно иначе в сам apk не добавляется строчка из permissions. Там идея такая, что в этом файле добавляем intent, который имеет доступ к 1С. дальше все запаковываем обратно и используем эту измененную платформу в сборщике.
13. MORT32Ram 11 29.05.19 04:07 Сейчас в теме
(12) Прощу прощения, все работает. Спасибо большое.
14. MORT32Ram 11 29.05.19 08:34 Сейчас в теме
Кто нибудь может сталкивался как сделать чтоб это оповещение отрабатывало только при открытой этой форме? сейчас работает в любой другой форме не только в той где код.
15. minimajack 63 29.05.19 08:49 Сейчас в теме
16. MORT32Ram 11 29.05.19 09:15 Сейчас в теме
19. Rokstedi 17 25.09.19 18:11 Сейчас в теме
Подскажите, как Вы боритесь с тем что при нажатии клавиши вне 1с(например на рабочем столе андроид) постоянно выскакивает уведомление?
http://prntscr.com/pauz2t
22. RFP 11.10.19 03:09 Сейчас в теме
(19)
Попробуйте поставить эту прогрмму от RightScan. Она должна заблочить все уведомления и возможности пользователя полазить по телефону. Будет доступно только то что вы выведете на рабочий стол.
Прикрепленные файлы:
rslauncher2.apk
Instruction.pdf
20. RFP 09.10.19 07:26 Сейчас в теме
Правильно ли я понимаю что собирать нужно в Андроид студио? Что то я попробовал, но не собралось ничего. Может есть у кого инструкция как собирать в Андроид студии?
21. poteh 10.10.19 11:57 Сейчас в теме
(20) Сервис перехвата клавиш - да, собирается в андроид студии. В целом ничего сложного. Нужно сделать пустой проект без Activity, затем добавить новый java класс и скопировать в него код из статьи.
Насколько я понял, необходимо ещё поправить AndroidManifest.xml чтобы андроид понял что это приложение - AccessibilityService.
Всё, делаем билд, кидаем приложение на устройство и инсталлируем.

А сама 1С с изменённым permissions собирается в сборщике мобильных приложений, который поставляется в архиве вместе с мобильной платформой.

(9) Я прав? AndroidManifest.xml тоже надо править? А то на моём SmartDroid не приходят уведомления. Из оконного приложения удалось передать уведомление в 1С, а через AccessibilityService- пока никак не добьюсь.
У меня получилось следующее:
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

            <service android:name=".MyAccessibilityService"
                android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
                android:label="@string/accessibility_service_label">
                <intent-filter>
                    <action android:name="android.accessibilityservice.AccessibilityService" />
                </intent-filter>
            </service>

    </application>
Показать
23. RFP 11.10.19 07:57 Сейчас в теме
(21) Спасибо. Собрать получилось. Но в 1С пока не отлавливается.
24. poteh 11.10.19 08:15 Сейчас в теме
(23) Вот такая же беда... Если получится отловить - отпишитесь, пожалуйста.
25. RFP 11.10.19 10:59 Сейчас в теме
(24)В отладчике не поймал остановку в ожидаемом мне обработчике "ОбработкаВнешнегоСобытия".

Однако.
1. После того как в файле permission мобильной платформы 1С я убрал пробелы в "<action android:name=" ru.dewersia.barcodeDLL.TRUSTCONNECT " />" (которые случайно за копипастил из другой статьи).
Было:
<LocalNotification>

        <uses-permission android:name="android.permission.VIBRATE"/>

        <target xpath="/manifest/application" >

            <receiver
                android:name="com.e1c.mobile.LocalNotificationReceiver"
                android:enabled="true">

				<intent-filter>
                    <action android:name=" ru.dewersia.barcodeDLL.TRUSTCONNECT  " />
                </intent-filter>
            </receiver>
        </target>
		
    </LocalNotification>
Показать


Стало:
<LocalNotification>

        <uses-permission android:name="android.permission.VIBRATE"/>

        <target xpath="/manifest/application" >

            <receiver
                android:name="com.e1c.mobile.LocalNotificationReceiver"
                android:enabled="true">

				<intent-filter>
                    <action android:name="ru.dewersia.barcodeDLL.TRUSTCONNECT" />
                </intent-filter>
            </receiver>
        </target>
		
    </LocalNotification>
Показать



2. Помимо этого полностью удалил 1С с ТСД, пересобранную без пробелов поставил. И начали появляться номера клавиш в виде уведомлений для приложения 1С.

3. Собрал приложение из исходников за стартмани, а не из кода статьи.

Пока не знаю что сделать, чтобы отловить клавишу в "ОбработкаВнешнегоСобытия", если дойдете до того же места что и я, может у вас что то получится. Пишите, если получиться пожалуйста.
26. RFP 11.10.19 12:04 Сейчас в теме
(24)Всё получилось
Добавил следующее:
Процедура ПриНачалеРаботыСистемы()

	

	#Если МобильноеПриложениеКлиент Или МобильноеПриложениеСервер  Тогда
		ДоставляемыеУведомления.ПодключитьОбработчикУведомлений("ПриПолученииУведомления");
	#КонецЕсли

	
КонецПроцедуры

Процедура ПриПолученииУведомления(Уведомление, Локальное, Показано) Экспорт
	
	Если Локальное Тогда
		Сообщить("Прибыло уведомление с текстом: " + Уведомление.Текст);
	Иначе
		Сообщить("Прибыло push-уведомление с текстом: " + Уведомление.Текст);
	КонецЕсли;

КонецПроцедуры

Показать


Всё работает и ловится.
27. olejnikov_m 42 08.11.19 10:13 Сейчас в теме
Добрый день. А есть уже готовый apk ? Поделитесь пожалуйста...
29. roman.vyalov 31.03.20 18:53 Сейчас в теме
30. roman.vyalov 31.03.20 18:53 Сейчас в теме
Подскажите как собрать apk пожалуйста
31. roman.vyalov 31.03.20 21:13 Сейчас в теме
Спасибо. Разобрался. Все заработало!
Просто не поставил в конфигурации разрешение на локальные уведомления.
32. yorock 24.07.20 10:39 Сейчас в теме
а для версии платформы 8.3.16.142 нет решения? не найти файл permissions.xml
Оставьте свое сообщение
Вопросы с вознаграждением