Skip to content

Commit

Permalink
Merge pull request #155 from NikCapko/update_sdk-migrations
Browse files Browse the repository at this point in the history
Update sdk-migrations.md
  • Loading branch information
Alex009 committed Aug 6, 2023
2 parents d4bcfdb + de70ab6 commit 08f46b8
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions learning/android/sdk-migrations.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@

Изменения | Что делать? (миграция)
------------ | -------------
**Approximate location** добавлена возможность для пользователя давать разрешение на получение "приблизительной" информации о местоположении. Android target 12. | При запросе рантайм пермисии `ACCESS_FINE_LOCATION` необходимо также автоматически запрашивать `ACCESS_COARSE_LOCATION` (приблизительная локация) в рамках одного запроса пермиссии. https://developer.android.com/about/versions/12/approximate-location
**App hibernation** - target Andoird 12, если пользователь напрямую не взаимодействует с приложением "несколько" месяцев, система автоматически отменяет выданные пермиссии и помещает приложение в "hibernation state" в котором приложение не может запускать jobs и alerts в фоне, приложение не может получать нотификации, включая высокоприоритетные и система оптимизирует память - автоматически очищается файловый кэш приложения. | Миграция не нужна, но нужно учитывать наличия такого состояния приложения. Также можно избежать переход в состояние спячки, для этого необходимо послать пользователю запрос `Intent.ACTION_APPLICATION_DETAILS_SETTINGS`. https://developer.android.com/about/versions/12/behavior-changes-12#app-hibernation
**Motion sensors are rate-limited** - появились ограничения на частоту запроса данных сенсеров движения: акселерометра, гироскопа и геомагнитного датчика | Для получения доступа к датчикам с более высокой частотой необходимо декларировать пермиссию `HIGH_SAMPLING_RATE_SENSORS`. https://developer.android.com/about/versions/12/behavior-changes-12#motion-sensor-rate-limiting
**Approximate location** добавлена возможность для пользователя давать разрешение на получение "приблизительной" информации о местоположении. Android target 12. | При запросе runtime разрешения `ACCESS_FINE_LOCATION` необходимо также автоматически запрашивать `ACCESS_COARSE_LOCATION` (приблизительная локация) в рамках одного запроса разрешения. https://developer.android.com/about/versions/12/approximate-location
**App hibernation** - target Andoird 12, если пользователь напрямую не взаимодействует с приложением "несколько" месяцев, система автоматически отменяет выданные разрешения и помещает приложение в "hibernation state" в котором приложение не может запускать jobs и alerts в фоне, приложение не может получать нотификации, включая высокоприоритетные и система оптимизирует память - автоматически очищается файловый кэш приложения. | Миграция не нужна, но нужно учитывать наличия такого состояния приложения. Также можно избежать переход в состояние спячки, для этого необходимо послать пользователю запрос `Intent.ACTION_APPLICATION_DETAILS_SETTINGS`. https://developer.android.com/about/versions/12/behavior-changes-12#app-hibernation
**Motion sensors are rate-limited** - появились ограничения на частоту запроса данных сенсеров движения: акселерометра, гироскопа и геомагнитного датчика | Для получения доступа к датчикам с более высокой частотой необходимо декларировать разрешение `HIGH_SAMPLING_RATE_SENSORS`. https://developer.android.com/about/versions/12/behavior-changes-12#motion-sensor-rate-limiting
**SameSite cookies in WebView** - поддержка каких-то новых кук в WebView ??? | ???

## Android 11 (API 30)
Expand All @@ -33,12 +33,12 @@
Изменения | Что делать? (миграция)
------------ | -------------
**Scoped storage enforcement** влияет на приложения с target Android 11 или выше и на target Android 10 без `requestLegacyExternalStorage = true` в манифесте приложения (флаг `android:requestLegacyExternalStorage` будет игнорироваться). Принудительное использование Scoped Storage. | https://developer.android.com/about/versions/11/privacy/storage , https://nuancesprog.ru/p/10404/ (ru)
**One-time permissions**: с target Android 11 и выше, которые используют геоданные (локация), микрофон, камера. Юзер может выдать временное (одноразовое) разрешение к ресурсу | Миграция не нужна, если в приложении корректно реализован код с запросом рантайм пермиссий
**Permissions auto-reset** с target Android 11 и выше. Если юзер не взаимодействовал с приложением несколько месяцев (в доке не указано сколько!), то ОС автоматически обнуляет ранее выданные рантайм-пермиссии (sensitive runtime permissions). Миграция не нужна, если в приложении корректно реализован код с запросом рантайм пермиссий | Миграция не нужна, если в приложении корректно реализован код с запросом рантайм пермиссий
**Background location access** с target Android 11 и выше, для приложений для которых нужен доступ к фоновой геолокации (android.permission.ACCESS_BACKGROUND_LOCATION) | Гайды как запрашивать доступ к фонофой геолокации https://developer.android.com/training/location/permissions#request-background-location , https://developer.android.com/training/location/background
**One-time permissions**: с target Android 11 и выше, которые используют геоданные (локация), микрофон, камера. Юзер может выдать временное (одноразовое) разрешение к ресурсу | Миграция не нужна, если в приложении корректно реализован код с запросом runtime разрешений
**Permissions auto-reset** с target Android 11 и выше. Если юзер не взаимодействовал с приложением несколько месяцев (в доке не указано сколько!), то ОС автоматически обнуляет ранее выданные runtime разрешения (sensitive runtime permissions). Миграция не нужна, если в приложении корректно реализован код с запросом runtime разрешений | Миграция не нужна, если в приложении корректно реализован код с запросом runtime разрешений
**Background location access** с target Android 11 и выше, для приложений для которых нужен доступ к фоновой геолокации (android.permission.ACCESS_BACKGROUND_LOCATION) | Гайды как запрашивать доступ к фоновой геолокации https://developer.android.com/training/location/permissions#request-background-location, https://developer.android.com/training/location/background
**Package visibility**: Для всех приложения с targetSdk с Android 11 (API level 30) - теперь нельзя получить доступ к информации обо всех приложениях. Теперь надо явно указать какие приложения должны быть доступны или объявить специальное разрешение `QUERY_ALL_PACKAGES` и проходить процедуру одобрения в Google Play. | Подробности https://developer.android.com/training/package-visibility , https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9
**Foreground services**: с target Android 11 и выше теперь для foreground сервисов, которые используют ресурсы камеры, микрофона или локации - в манифесте обязательно нужно указывать какой ресурс используется в сервисе через флаг `android:foregroundServiceType` | Изменения по foreground-services https://developer.android.com/about/versions/11/privacy/foreground-services
**Custom Toast** запрещены кастомные тосты | -
**Custom Toast** запрещены кастомные toasts | -

## Android 10 (API 29)

Expand All @@ -48,8 +48,8 @@

Изменения | Что делать? (миграция)
------------ | -------------
**Scoped storage** влияет на приложения, которые получают доступ и шарят файлы в external storage. Для чтение медиа файлов через `MediaStore` нужна пермиссия `READ_EXTERNAL_STORAGE` (если доступ к файлам других приложений) | Информация про scoped storage https://developer.android.com/about/versions/10/privacy/changes#scoped-storage
**More user control over location permissions**: для приложений, которые получают доступ к локации в background нужна пермиссия в манифесте `ACCESS_BACKGROUND_LOCATION`. | https://developer.android.com/about/versions/10/privacy/changes#app-access-device-location
**Scoped storage** влияет на приложения, которые получают доступ и шарят файлы в external storage. Для чтение медиафайлов через `MediaStore` нужно разрешение `READ_EXTERNAL_STORAGE` (если доступ к файлам других приложений) | Информация про scoped storage https://developer.android.com/about/versions/10/privacy/changes#scoped-storage
**More user control over location permissions**: для приложений, которые получают доступ к локации в background нужно разрешение в манифесте `ACCESS_BACKGROUND_LOCATION`. | https://developer.android.com/about/versions/10/privacy/changes#app-access-device-location
**Background activity starts** ограничения на запуск активити в background. Теперь активити можно запускать только непосредственно в результате взаимодействия с пользователем (автоматически в фоне запускать активити не получится) | https://developer.android.com/about/versions/10/privacy/changes#background-activity-starts
**Non-resettable hardware identifiers** Ограничения на доступ к серийному номеру устройства и IMEI, которые теперь нельзя получить | У сторонних приложений доступ к данной информации теперь ограничен https://developer.android.com/about/versions/10/privacy/changes#non-resettable-device-ids
**Permission for wireless scanning**: Доступ к некоторым методам сканирования на оснвое Wi-Fi или Bluetooth теперь требуют получения пермисии `ACCESS_FINE_LOCATION` | https://developer.android.com/about/versions/10/privacy/changes#location-telephony-bluetooth-wifi
**Permission for wireless scanning**: Доступ к некоторым методам сканирования на оснвое Wi-Fi или Bluetooth теперь требуют получения разрешения `ACCESS_FINE_LOCATION` | https://developer.android.com/about/versions/10/privacy/changes#location-telephony-bluetooth-wifi

0 comments on commit 08f46b8

Please sign in to comment.