|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|||||||||||
Несколько разнородных неясностей при создании приложения27.02.2019, 20:44. Показов 4533. Ответов 60
Метки нет (Все метки)
Возникло несколько вопросов. Чтоб не плодить темы изложу всё в одной....
1. Можно ли (и нужно) удалить из проекта стандартные векторные xml иконки приложения (созданные студией), если при этом созданы свои иконки .png под разные DPI ? https://www.cyberforum.ru/atta... 1551289378 2. В приложении необходимо использовать определение местоположения. В манифесте есть запись
в коде есть метод, который получает координаты, а в нём созданная по подсказке студии какая-то хрень (см. ниже комментария). Без этой записи студия выражает недовольство возможной некорректностью работы с новыми API. Что это означает, правильно ли я поступаю, используя подобную запись? на 6-ом андроиде, впрочем, работает. но как-то неприятно, когда сам не понимаешь что написал...
https://www.cyberforum.ru/atta... 1551288984 Это возможно из-за одновременного появления на экране toast-a и всплывающего окна запроса на разрешение ? или я ошибаюсь ? Как бы это побороть (желательно не отказываясь от toast-ов) ?
0
|
|||||||||||
| 27.02.2019, 20:44 | |
|
Ответы с готовыми решениями:
60
Несколько неясностей в C++ Как правильно передать несколько разнородных данных из одной формы в другую?
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|
| 01.03.2019, 15:22 [ТС] | |
|
понял. в переопределенном onRequestPermissionsResult вместо DENIED поставить GRANTED и все действия поместить не в
EmployGPS (), а в этом самом onRequestPermissionsResult-е (используя конструкцию if - else). Ну и тексты toast-ов вывести в res/values/strings и в код просто ссылку на ресурс. Это само собой.... конечно.
0
|
|
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 01.03.2019, 15:31 | |
|
Abakus, посмотри еще shouldShowRequestPermissionRationale(), с его помощью состояние отказа можно определить.
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
||||||
| 01.03.2019, 15:45 [ТС] | ||||||
|
Я понимаю. Но вдруг пользователь откажется 100500 раз, а на 100501-ый захочет разрешить. Так конца-края не видать. Захочет отказаться совсем - пусть сносит приложение.
Ну там нужен GPS.И не шпионить за положением юзера, а чтоб узнать, местоположение и вычислять всякую всячину. Восходы и закаты луны и солнца, долготу дня и прочее. Календарик такой, короче. Добавлено через 7 минут кстати, сделал как Вы говорите в 20-м посте , но почему-то студия не ругается, а предупреждает: Call requires permission which may be rejected by user: code should explicitly check to see if permission is available (with checkPermission) or explicitly handle a potential SecurityException less... (Ctrl+F1) This check scans through your code and libraries and looks at the APIs being used, and checks this against the set of permissions required to access those APIs. If the code using those APIs is called at runtime, then the program will crash. Furthermore, for permissions that are revocable (with targetSdkVersion 23), client code must also be prepared to handle the calls throwing an exception if the user rejects the request for permission at runtime. Issue id: MissingPermission не нравится ей стала строка:
0
|
||||||
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|||
| 01.03.2019, 15:51 | |||
|
Вот тут всё написано про разрешения:
https://developer.android.com/... requesting
0
|
|||
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 01.03.2019, 16:08 | |
|
Abakus, обрабатывать нужно, нет? Permission проверяется?
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|
| 01.03.2019, 16:21 [ТС] | |
|
ExFau$t,
вот тут позвольте с Вами не согласиться. При всём моём глубоком уважении. Я помню как и Вы мне помогали. Дело в том, что моменты восходов и закатов луны и солнца, долгота дня и прочее только и зависят от шести параметров. а именно: широты места, долготы места, часового пояса (TimeZone), дня, месяца и года. Ну и возможно переходы на летнее время надо учитывать (Слава Богу - для России неактуально). Разве не удобно, когда широта и долгота определяется автоматически, а не вводится вручную ? В программе есть список крупных городов с их координатами. Ну а если я в деревне, в тайге, на море..... Что каксается батареи - зашёл, определил место, - выключи геоданные.... Кстати она у меня лежит на тестировании (пока ещё без GPS ) вот тут http://4pda.ru/forum/index.php... p=82490836 - можете взглянуть на мое первое творение
0
|
|
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
| 01.03.2019, 16:36 | |
|
Я говорю не про геоданные в целом для задачи, а о gps конкретно, как о способе получения этих данных. Для всех этих моментов восходов и прочего не нужно местоположение с точностью до 1м. Обычных координат провайдера более чем достаточно, для этого не надо дополнительный модуль подключать и проще с разрешениями. Или узнать примерное положение по ip и при необходимости уточнить у юзера, так сейчас делают почти везде, в онлайн магазинах, например.
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|
| 01.03.2019, 16:40 [ТС] | |
|
jaman_smk,
да все работает вроде ... пока сильно не тестил. А впрочем и в том виде как у меня в 19 посте тоже всё вроде работает.... но там ничего и не Может я чего опять не так сделал.... вот посмотрите скриншот ...
0
|
|
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 01.03.2019, 16:47 | |
|
Abakus, ACCESS_COARSE_LOCATION еще нужен, нет?
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|
| 01.03.2019, 16:47 [ТС] | |
|
ExFau$t, вот тут согласен. Но как говорится - уже ввязался в бой.
Хотя можно конечно заменить на Network_provider и в манифесте ACCESS_COARSE_LOCATION. Дык опять же - интернет или сотовая вышка нужна. А вдруг деревня глухая. Я такие места знаю. Но точность до метра конечно не нужна....
0
|
|
|
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
|
|
| 01.03.2019, 16:52 | |
|
Высокие здания, блокирующие или искажающие gps, встречаются чаще в пользовательском опыте, чем глухие деревни без сотовой связи (этот провайдер вроде как может брать последнюю известную точку).
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|
| 01.03.2019, 16:56 [ТС] | |
|
jaman_smk, у меня только FINE_LOCATION прописано в манифесте.... больше никаких юзес пермишен.
я думаю остановлюсь на GPS версии. Хотя бы из-за того, что прога работает в планшете (без сим-карты и мобильного инета). А вай-фай не везде без паролей.... GPS как-то надёжнее, имхо.... Что скажете по скриншоту. Так оставить или вернуться к версии из поста 19, что я писал ? Добавлено через 2 минуты ExFau$t, ну....дискуссионный момент конечно. Вот те же без-симочные планшеты.... хотя не вопрос сделать и то и то.
0
|
|
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 01.03.2019, 17:19 | |
|
Abakus, проверь, требуется ли разрешение ACCESS_COARSE_LOCATION.
Добавлено через 20 секунд Abakus, в Манифест вставь.
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|
| 01.03.2019, 18:30 [ТС] | |
|
хорошо.... проверим
Добавлено через 27 минут проверил. в версии см. скриншот с подчеркнутой красным строкой. и добавлением в манифест ACCESS_COARSE_LOCATION Имеются баги. Лог непонятен: Кликните здесь для просмотра всего текста
03-01 17:52:23.320 810-939/? E/PowerManagerService: handleSandman : startDreaming, but isDreaming false
03-01 17:52:23.360 810-1154/? E/MotionRecognitionService: handler : SCREEN_OFF end 03-01 17:52:23.390 810-1174/? E/WifiNative-wlan0: do suspend true 03-01 17:52:23.450 810-1438/? E/GpsLocationProvider: sExerciseInterface is not available 03-01 17:52:23.490 3317-3317/? E/SamsungIME: getMethod(): java.lang.NoSuchMethodException: isLockScreenEnabled [] 03-01 17:52:23.500 3317-3317/? E/SamsungIME: invoke(): method is null 03-01 17:52:23.510 3823-3886/? E/BtGatt.GattService: [GSIM LOG]: gsimLogHandler: com.samsung.android.beaconmanager, msg: MESSAGE_STOP_SCAN 03-01 17:52:23.720 3823-3886/? E/BtGatt.GattService: [GSIM LOG]: gsimLogHandler: com.samsung.android.beaconmanager, msg: MESSAGE_START_SCAN 03-01 17:52:23.750 3823-3864/? E/BtGatt.ScanManager: default value of curScanSetting 0 is choosen 03-01 17:52:27.220 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:52:27.230 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:52:27.590 1260-1260/? E/KeyguardViewMediator: setShowingLocked mShowing = true 03-01 17:52:27.630 1260-1260/? E/LSO: LSO Service is not yet ready!!! 03-01 17:52:27.820 810-2028/? E/SdpServiceKeeper: isLicensed {pid:1260 uid:10046 userid:0 doPkg:null} 03-01 17:52:27.820 810-2028/? E/SdpServiceKeeper: System app. Skip license activation 03-01 17:52:27.830 1260-19411/? E/KeyguardViewMediator: lockSdp :: Failed to lock sdp engine... 03-01 17:52:31.960 810-1422/? E/Watchdog: !@Sync 4806 [03-01 17:52:31.969] 03-01 17:52:37.280 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:52:37.280 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:52:42.730 810-2577/? E/EPDG*--*[RILRECEIVER]: RX [IPC_GPRS_DEFINE_PDP_CONTEXT] -- RESPONSE -- false-- (Invalid IWlan state : 3) (cid : 2) 03-01 17:52:47.330 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:52:47.330 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:52:55.650 364-1083/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'8' size:56,format:1 03-01 17:52:57.390 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:52:57.390 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:01.960 810-1422/? E/Watchdog: !@Sync 4807 [03-01 17:53:01.969] 03-01 17:53:06.840 18022-18047/? E/ContactsProvider_EventLog: Flush buffer to file cnt : 1 size : 0Kb duration : 3ms lastUpdatedAfter : 60109 ms mFlush_time_threasold : 2000 mCurrentSize : 266 03-01 17:53:07.450 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:07.450 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:12.940 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/virtual/xt_idletimer/timers' size:195,format:0 03-01 17:53:12.940 364-1082/? E/NetlinkEvent: NetlinkEvent::FindParam(): Parameter 'LABEL' not found 03-01 17:53:12.940 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/virtual/xt_idletimer/timers' size:195,format:0 03-01 17:53:17.500 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:17.500 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:27.560 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:27.560 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:28.590 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/virtual/xt_idletimer/timers' size:198,format:0 03-01 17:53:28.590 364-1082/? E/NetlinkEvent: NetlinkEvent::FindParam(): Parameter 'LABEL' not found 03-01 17:53:28.590 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/virtual/xt_idletimer/timers' size:198,format:0 03-01 17:53:31.960 810-1422/? E/Watchdog: !@Sync 4808 [03-01 17:53:31.970] 03-01 17:53:37.610 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:37.610 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:44.020 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/virtual/xt_idletimer/timers' size:195,format:0 03-01 17:53:44.020 364-1082/? E/NetlinkEvent: NetlinkEvent::FindParam(): Parameter 'LABEL' not found 03-01 17:53:44.020 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/virtual/xt_idletimer/timers' size:195,format:0 03-01 17:53:47.660 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:47.670 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:57.720 364-1082/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:53:57.720 221-293/? E/NetlinkEvent: NetlinkEvent::decode(): buffer'change@/devices/battery/power_supply/battery' size:715,format:0 03-01 17:54:01.960 810-1422/? E/Watchdog: !@Sync 4809 [03-01 17:54:01.970] Добавлено через 12 минут если использую способ из 19 поста - багов не выявлено. не зависимо есть или нету в манифесте второе разрешение (COARSE_LOCATION которое....). Добавлено через 16 минут в чём был баг, при использовании методов (см скриншот пост 28): При клике по checkBox-у запрос на разрешение появляется, если не дать разрешения - выходит toast с тем, что у Вас паранойя и проч. и checkBox отчёкивается. Это всё нормально (так задумано). Но когда уже разрешение имеется и мы работаем с геоданными - отчёкивание checkBox-а вызывает окно настроек и toast "можно отключить геолокацию, чтоб батарею не сажать". Тоже так задумано. Но если при этом оставить gps включенным в настройках (просто выйти из настроек) GPS сможет искать координаты, только после переустановки приложения. При этом разрешения остаются задействоваными, gps в настройке включен, checkBox включай или выключай - ничего не ловит. и значка в трее нету. Вот такой баг. Впрочем если всё как в 19 посте я написал - багов не выявлено. Имхо, надо передать на тестирование на 4pda версию с GPS. порядок только наведу (дополнить справку, ввести тексты в ресурсы строк и проч....) Добавлено через 3 минуты PS. реальное устройство Samsung Galaxy J2 prime с шестым андроидом на борту....
0
|
|
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 01.03.2019, 19:28 | |
|
Abakus, почему бы на эмуляторе не потестить?
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
|
| 01.03.2019, 23:00 [ТС] | |
|
jaman_smk, да можно и на нем... но не люблю...
тормознутые они - эти эмуляторы... ещё тормознутее чем я. реальное устройство быстрее
0
|
|
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 02.03.2019, 07:52 | |
|
Abakus, смотри: ты все сделаешь - скинешь на тесты. Уверен, что все баги устранены и не будет вылетов и прочего? Лучше на эмуляторе потестить хотя бы, чтобы удостовериться, что все работает (не приятно, когда у тестера вылетать что-то будет, а ты мгновенно поправить не сможешь).
0
|
|
|
4 / 3 / 1
Регистрация: 17.02.2018
Сообщений: 119
|
||||||
| 03.03.2019, 01:01 [ТС] | ||||||
|
Был уверен... но если что и есть, - то заклинивание программы при условии , если пользователь отказал геолокации окончательно (вставил галочку больше не спрашивать).
Нажимаешь на CheckBox после полного отказа от разрешения - и ничего не происходит. Даже не нажимается.... Но такой баг, я вообще не знаю как устранять ... целый день читал документацию , примеры на stackoverflow, fandroid.info и прочих ресурсах. Так ничего и не понял. Как это всё сделать, чтоб без глюков.... Вот лучше этого не на танцевал с бубном...
да чего-уж там... вот и исходник...
0
|
||||||
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 03.03.2019, 07:54 | |
|
Abakus, shouldShowRequestPermissionRationale() должен быть в onRequestPermissionsResult().
1
|
|
|
111 / 89 / 29
Регистрация: 07.01.2017
Сообщений: 456
|
|
| 03.03.2019, 08:15 | |
Сообщение было отмечено Abakus как решение
Решение
Abakus, + держи:
1
|
|
| 03.03.2019, 08:15 | |
|
Помогаю со студенческими работами здесь
40
Ошибка при создании приложения Помощь при создании ГУИ-приложения Ошибка при создании приложения Composer Ошибка при создании веб-приложения Ошибка при создании консольного приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|