[Taiga #49] Реализовать запрос разрешений для Android #5

Open
opened 2026-05-22 00:35:37 +00:00 by Grigo · 0 comments
Owner

Linked Taiga story: #49

Suggested branch:
feature/taiga-49-realizovat-zapros-razresheniy-dlya-android

Project type: work
AI tags: work, ais, android, permissions, android-runtime, gps, ble, notifications

Description

В проекте AndroidAisMap необходимо реализовать полноценную систему запроса разрешений у пользователя. На основе контекста кода видно, что приложение использует GPS, BLE, доступ в интернет и уведомления. Сейчас есть класс PermissionsBinder и обработка разрешений в MainActivity (PERMISSION_REQUEST_CODE, NOTIFICATION_PERMISSION_REQUEST_CODE), но система требует унификации и расширения. Нужно обеспечить корректный запрос разрешений для всех компонентов: ACCESS_FINE_LOCATION, BLUETOOTH, INTERNET, POST_NOTIFICATIONS и других.

Taiga: https://tasks.grigowashere.ru/project//us/49

Acceptance criteria

  • Приложение корректно запрашивает разрешения ACCESS_FINE_LOCATION перед использованием GPS
  • Приложение запрашивает разрешения для Bluetooth (BLUETOOTH, BLUETOOTH_ADMIN, BLUETOOTH_SCAN, BLUETOOTH_CONNECT) перед подключением к BLE устройствам
  • Разрешение POST_NOTIFICATIONS запрашивается перед отправкой уведомлений (Android 13+)
  • Приложение корректно обрабатывает отказ в разрешениях и информирует пользователя
  • Все запросы разрешений логируются и отслеживаются
  • На Android 6+ (API 23+) используется requestPermissions(), на старших версиях разрешения берутся из манифеста

Code notes

  • В MainActivity.java используются коды запросов: PERMISSION_REQUEST_CODE = 1001, NOTIFICATION_PERMISSION_REQUEST_CODE = 1003 - нужно убедиться, что метод onRequestPermissionsResult существует и обрабатывает оба случая
  • InterfacesSettingsActivity.java уже имеет логику для запроса BLE разрешений (REQ_PERMS_BLE), это хороший пример для расширения
  • AndroidNMEAListener.java содержит множество вызовов requestLocationUpdates(), которые требуют проверки разрешений перед выполнением
  • AisHubGattClient.java используется для BLE работы и содержит методы типа requestMtu(), requestConnectionPriority() - убедиться, что BLE разрешения проверяются перед этими операциями
  • PermissionsBinder упоминается в MainActivity (строка 46, 1032) - нужно проверить её реализацию

Questions

  • Какие конкретные разрешения кроме GPS, BLE и уведомлений требуются для работы приложения?
  • Нужна ли реализация повторного запроса разрешений если пользователь отказал в первый раз?
  • Какая минимальная версия Android поддерживается (нужна ли обработка для версий ниже Android 6)?
  • Существует ли уже класс PermissionsBinder или его нужно создать с нуля?
Linked Taiga story: #49 Suggested branch: `feature/taiga-49-realizovat-zapros-razresheniy-dlya-android` Project type: `work` AI tags: work, ais, android, permissions, android-runtime, gps, ble, notifications ## Description В проекте AndroidAisMap необходимо реализовать полноценную систему запроса разрешений у пользователя. На основе контекста кода видно, что приложение использует GPS, BLE, доступ в интернет и уведомления. Сейчас есть класс PermissionsBinder и обработка разрешений в MainActivity (PERMISSION_REQUEST_CODE, NOTIFICATION_PERMISSION_REQUEST_CODE), но система требует унификации и расширения. Нужно обеспечить корректный запрос разрешений для всех компонентов: ACCESS_FINE_LOCATION, BLUETOOTH, INTERNET, POST_NOTIFICATIONS и других. Taiga: https://tasks.grigowashere.ru/project//us/49 ## Acceptance criteria - Приложение корректно запрашивает разрешения ACCESS_FINE_LOCATION перед использованием GPS - Приложение запрашивает разрешения для Bluetooth (BLUETOOTH, BLUETOOTH_ADMIN, BLUETOOTH_SCAN, BLUETOOTH_CONNECT) перед подключением к BLE устройствам - Разрешение POST_NOTIFICATIONS запрашивается перед отправкой уведомлений (Android 13+) - Приложение корректно обрабатывает отказ в разрешениях и информирует пользователя - Все запросы разрешений логируются и отслеживаются - На Android 6+ (API 23+) используется requestPermissions(), на старших версиях разрешения берутся из манифеста ## Code notes - В MainActivity.java используются коды запросов: PERMISSION_REQUEST_CODE = 1001, NOTIFICATION_PERMISSION_REQUEST_CODE = 1003 - нужно убедиться, что метод onRequestPermissionsResult существует и обрабатывает оба случая - InterfacesSettingsActivity.java уже имеет логику для запроса BLE разрешений (REQ_PERMS_BLE), это хороший пример для расширения - AndroidNMEAListener.java содержит множество вызовов requestLocationUpdates(), которые требуют проверки разрешений перед выполнением - AisHubGattClient.java используется для BLE работы и содержит методы типа requestMtu(), requestConnectionPriority() - убедиться, что BLE разрешения проверяются перед этими операциями - PermissionsBinder упоминается в MainActivity (строка 46, 1032) - нужно проверить её реализацию ## Questions - Какие конкретные разрешения кроме GPS, BLE и уведомлений требуются для работы приложения? - Нужна ли реализация повторного запроса разрешений если пользователь отказал в первый раз? - Какая минимальная версия Android поддерживается (нужна ли обработка для версий ниже Android 6)? - Существует ли уже класс PermissionsBinder или его нужно создать с нуля?
Grigo added the workaisandroidblepermissionsandroid-runtimegpsnotifications labels 2026-05-22 00:35:38 +00:00
Sign in to join this conversation.