Назад к вопросам
Middle
71
questionbank
В чем заключается отличие между Android 10 и Android 11?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Основные отличия Android 10 и Android 11 затрагивают конфиденциальность, управление уведомлениями, диалоги и многозадачность.
| Feature | Android 10 | Android 11 |
|---|---|---|
| Разрешения геолокации | "Разрешить всегда", "Разрешить только во время использования", "Отказать" | Добавлено "Разрешить только в этот раз" (для однократного доступа). |
| Разрешения доступа к данным | Управление через настройки приложений. | Автоматический сброс разрешений для неиспользуемых приложений. Улучшенный Scoped Storage (область хранения с ограниченным доступом). |
| Уведомления | Сгруппированы по типу приложения, приоритезация. | Добавлена категория "Разговоры" для приоритезации чатов. Улучшенное управление уведомлениями в шторке. |
| Диалоги | Не выделены в отдельную категорию. | Отдельная секция "Разговоры" в шторке уведомлений для быстрого доступа к чатам. |
| Многозадачность | Режим разделенного экрана, жесты. | Улучшенное управление медиа, возможность быстрого переключения между устройствами воспроизведения. Улучшенное управление питанием для приложений. |
| Запись экрана | Требуются сторонние приложения. | Встроенная функция записи экрана. |
| Доступы к файлам | Более широкие возможности доступа к файловой системе. | Более строгий контроль доступа к файлам через Scoped Storage. Усложнен доступ к общим каталогам без явных разрешений. |
Пример использования Scoped Storage:
// Пример доступа к медиафайлам с помощью MediaStore и Scoped Storage
Uri collection = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY);
ContentResolver contentResolver = getContentResolver();
String[] projection = new String[] {
MediaStore.Images.Media._ID,
MediaStore.Images.Media.DISPLAY_NAME,
MediaStore.Images.Media.DURATION,
MediaStore.Images.Media.SIZE
};
try (Cursor cursor = contentResolver.query(
collection,
projection,
null, // selection
null, // selectionArgs
null // sortOrder
)) {
// Обработка данных из курсора
}