Сертифицированные приложения не полностью поддерживаются менеджером приложений
Начиная с Android 10, способы предоставления разрешений приложениям более детализированы в настройках смартфона Android. Вы можете видеть разрешения Android по приложениям, по типу, а также более легко контролировать информацию, которую Google собирает от вас. В большинстве случаев вы можете разрешить или запретить, но некоторые разрешения имеют третий вариант: только при использовании приложения.
Как получить доступ к настройкам разрешений
Первый способ
Существует три способа перехода к диспетчеру разрешений. Первый вариант - перейти к дополнительным настройкам в разделе «Приложения».
- Откройте Настройки .
- Нажмите Приложения .
- Нажмите « Разрешения»> « Управление разрешениями» . Вы увидите список разрешений с подробной информацией под каждым из них, например, «Календарь» (разрешено 3 из 7 приложений).
4. Нажмите любое разрешение, чтобы увидеть, что оно значит. Приложения с разрешениями датчиков тела могут получать доступ к данным датчиков о ваших жизненно важных показателях.
5. Под ним находятся два раздела: Разрешено и Запрещено . Нажмите на имя приложения, чтобы разрешить или запретить разрешения.
6. Чтобы увидеть все разрешения для этого приложения нажмите на соответствующую ссылку на этом экране.
7. Вернитесь в « Управление разрешениями» . Нажмите « Местоположение» , найдите Карты (Google Maps) (или другое навигационное приложение), и вы увидите три варианта вместо двух: « Разрешить в любом режиме» , « Разрешить только во время использования приложения» и « Запретить» .
Второй способ
Другой способ - перейти на страницу всех приложений в настройках.
- Откройте « Настройки» .
- Нажмите « Приложения» .
- Нажмите « Просмотреть все приложения», чтобы получить полный список.
4. Нажмите на приложение, затем нажмите « Разрешения приложений», чтобы просмотреть все доступные для него разрешения.
5. Как и выше, вы увидите раздел « Разрешенные и запрещенные ». Нажмите на элемент, чтобы изменить разрешения. Нажмите « Все приложения с этим разрешением » , чтобы просмотреть полный список.
Как получить доступ к настройкам специальных разрешений
- Проделайте действия с 1 по 3 пункт из предыдущего способа.
- Выберите нужное приложение, затем нажмите « Другие разрешения», чтобы просмотреть список специальных разрешений.
- Затем нажмите на разрешение, которое хотите изменить. После чего перед вами откроется окошко, в котором можно будет настроить разрешение: Разрешить и Отказать или Спрашивать.
Примечание : Эти инструкции относятся к Android 10, 9.0 (Pie) и 8.0 (Oreo).
Чтобы сертифицировать приложение для Windows или подготовить его к публикации в Microsoft Store, необходимо сначала проверить и протестировать его локально. В этой статье показано, как установить и запустить комплект сертификации приложений для Windows, чтобы убедиться в том, что приложение является безопасным и эффективным.
Предварительные условия
Необходимые условия для тестирования универсального приложения для Windows:
- Необходимо установить и запустить Windows 10.
- Необходимо установить комплект сертификации приложений для Windows. Он включен в пакет средств разработки программного обеспечения для Windows 10.
- Необходимо подготовить устройство к разработке.
- Необходимо развернуть на компьютере приложение для Windows, которое вы хотите протестировать.
Обновление на месте: установка более современной версии комплекта сертификации приложений для Windows будет заменять все установленные ранее версии комплекта.
Новые возможности
Комплект теперь поддерживает тесты для приложений моста для классических приложений Windows. Эти тесты позволяют опубликовать приложение в Microsoft Store или пройти сертификацию.
Теперь комплект можно интегрировать в автоматические процедуры тестирования, если интерактивные пользовательские сеансы недоступны.
Проверка приложений перед запуском больше не поддерживается.
Известные проблемы
Ниже приведен список известных проблем с комплектом сертификации приложений для Windows.
Во время тестирования, если установщик завершит работу, но оставит активные процессы или открытые окна, то комплект сертификации приложений может обнаружить, что установщик должен еще выполнить некоторые действия. В этом случае комплект зависнет на задаче "Файлы трассировки установки процесса", и работу пользовательского интерфейса невозможно будет продолжить.
Решение. После завершения работы установщика вручную закройте все активные процессы или открытые установщиком окна.
Решение. Недоступно
Для приложений моста для классических приложений, использующих пакет SDK для Windows версии 10.0.15063, следует игнорировать сбои в тесте ресурсов манифеста приложения, указывающие на то, что образ не соответствует ожидаемым размерам, если отклонение составляет один пиксель. Допуск теста — +/-1 пиксель. Пример: размер мелкой плитки с масштабом 125 % составляет 88,75 x 88,75 пикселей. Если это значение округлить до 89 x 89, будут превышены ограничения размера (88 х 88 пикселей).
Решение. Недоступно
Проверка приложения для Windows с помощью комплекта сертификации приложений для Windows в интерактивном режиме
В меню Пуск выберите Приложения, найдите Комплекты Windows и щелкните Комплект сертификации приложений для Windows.
В комплекте сертификации приложений для Windows выберите категорию проверки, которую необходимо выполнить. Например: Для проверки приложения для Windows щелкните Validate a Windows app (Проверить приложение для Windows).
Вы можете перейти непосредственно к тестируемому приложению или выбрать приложение из списка в пользовательском интерфейсе. При первом запуске комплекта сертификации приложений для Windows в пользовательском интерфейсе будут перечислены все приложения для Windows, установленные на компьютере. При последующих запусках в пользовательском интерфейсе будут отображаться последние проверенные приложения для Windows. Если в этом списке отсутствует приложение, которое необходимо протестировать, щелкните Моего приложения нет в списке, чтобы отобразить полный список приложений, установленных в вашей системе.
После выбора приложения, которое нужно протестировать, нажмите кнопку Далее.
На следующем экране вы увидите рабочий процесс тестирования, который соответствует типу тестируемого приложения. Если тест выделен серым, он не применим к вашей среде. Например, если вы тестируете приложение для Windows 10 в Windows 7, будут доступны только статические тесты. Обратите внимание, что Microsoft Store может применять все тесты этого рабочего процесса. Выберите тесты, которые будут выполнены, и нажмите кнопку Далее.
Комплект сертификации приложений для Windows начнет проверку приложения.
В ответ на запрос по окончании тестирования введите путь к папке, в которую следует сохранить отчет о тестировании.
Комплект сертификации приложений для Windows создаст HTML-файл вместе с отчетом в формате XML и сохранит его в этой папке.
Откройте файл отчета и просмотрите результаты теста.
Если вы используете Visual Studio, вы можете запустить комплект сертификации приложений для Windows при создании пакета приложения. Подробнее об этом см. в разделе Packaging UWP apps (Создание пакетов приложений UWP).
Проверка приложения для Windows с помощью комплекта сертификации приложений для Windows из командной строки
Комплект сертификации приложений для Windows должен выполняться в контексте активного сеанса пользователя.
Откройте окно командной строки от имени администратора ("Запустить от имени администратора").
В командном окне перейдите в каталог, содержащий комплект сертификации приложений для Windows.
Примечание. Путь по умолчанию — C:\Program Files(x86)\Windows Kits\10\App Certification Kit\.
Введите следующие команды в указанном порядке для тестирования приложения, которое уже установлено на компьютере тестирования:
appcert.exe test -packagefullname [package full name] -reportoutputpath [report file name]
Или можно использовать следующие команды, если приложение не установлено. Комплект сертификации приложений для Windows откроет пакет и применит соответствующий рабочий процесс проверки:
appcert.exe test -appxpackagepath [package path] -reportoutputpath [report file name]
По окончании тестирования откройте файл отчета с именем [report file name] и проверьте результаты теста.
Примечание. Комплект сертификации приложений для Windows может выполняться из службы, но служба должна запустить процесс комплекта в активном сеансе пользователя и не может выполняться в сеансе Session0.
Примечание Чтобы получить дополнительные сведения о командной строке комплекта сертификации приложений для Windows, введите команду appcert.exe /?
Тестирование на маломощном компьютере
Пороговые значения теста производительности комплекта сертификации приложений для Windows основаны на производительности маломощного компьютера.
Характеристики компьютера, на котором выполняется тестирование, могут повлиять на результаты теста. Чтобы определить, соответствует ли производительность вашего приложения политикам Microsoft Store, мы рекомендуем проводить тестирование на маломощном компьютере, например, с процессором Intel Atom, разрешением экрана 1366x768 (или выше) и механическим (а не твердотельным) жестким диском.
Так как маломощные компьютеры совершенствуются, со временем их рабочие характеристики могут меняться. Выберите самую новую версию политик Microsoft Store и протестируйте свое приложение с использованием самой новой версии комплекта сертификации приложений для Windows, чтобы обеспечить соответствие вашего приложения последним требованиям к производительности.
В поиске необходимого особенно неприятно находить полностью подходящую по запросам программу, которая вместо кнопки скачивания выдает: «Приложение несовместимо с вашим устройством». Не сказать, что это вызывает панику, но осадок неприятный остается. Еще более досадно, когда другого подходящего приложения нет. Как поступить? В чем кроется причина?
Почему появляется такая ошибка?
Фразу «приложение несовместимо с вашим устройством» Android пишет в нескольких случаях:
- Устаревшая версия прошивки. "Андроид" продолжает развиваться, приложения стараются быть с ним в ногу.
- Местоположение. Некоторые разработчики ставят ограничение на установку их программы в той или иной стране.
- Низкие характеристики смартфона. Разработчики полагают, что ваше устройство попросту не сможет нормально функционировать с данной игрой или программой.
Как бы страшно ни звучали такие причины, в принципе, все они «лечатся».
APK-файлы
Для того чтобы установить приложение, для начала нужно посетить настройки. Там в разделе "Безопасность" возле подраздела "Неизвестные источники" поставить галочку, дав тем самым возможность устройству устанавливать приложения не только из "Маркета".
После проделанных операций просто откройте APK-файл так, как сделали бы это с фото или музыкальным треком. После нажмите "Далее", а по завершении установки "Ок" - и пользуйтесь программой в полной мере.
Для того чтобы провести эту операцию, не обязательно иметь расширенные права, то есть рутирование. Единственное, для чего они могут понадобиться – это для того, чтобы скопировать APK-файл с устройства, на котором данное приложение уже установлено.
Недостатком такого метода решения проблемы несовместимости приложений может стать то, что программа не будет обновляться через "Маркет", и как следствие, если выйдет её новая версия, все описанные выше манипуляции (кроме настройки безопасности) нужно будет проделать заново.
Приложение Market Helper
Эта программа не находится в "Маркете" и работает только на устройствах с расширенным доступом. Приложение не сделает ваш телефон лучше или сообразительнее. Суть программы в том, что она меняет вашу идентификацию и "Маркет" считает, что ваше устройство на самом деле от другого производителя или другой модели. Более того, Market Helper позволяет изменить ваши геолокационные данные, не вставая с дивана. Это идеальный вариант для приложений, недоступных в вашем регионе.
Принцип установки Market Helper такой же, как и с файлами APK. По завершении установки и настройки ошибка «приложение несовместимо с вашим устройством» должна исчезнуть.
Региональные ограничения
Если приложение несовместимо с вашим устройством по причине ограничений, наложенных местностью, в которой вы находитесь, воспользуйтесь туннельной маршрутизацией VPN. Такой метод позволит перенести вас в другую страну, в которой установлен сервер-маршрутизатор. Конечно, этот способ не так надежен, как применение программы, описанной выше, но попробовать все же стоит. Кроме того, для этого метода не требуются рут-права, что, несомненно, является достоинством.
Выводы
Каждый из этих методов не дает гарантии успеха. В некоторых случаях необходимо принудительно очистить кеш в "Маркете". Для этого через настройки его нужно остановить, очистить данные, запустить Market Helper или VPN и включить заново сам "Маркет". Помните, что любые изменения в настройках производятся вами на свой страх и риск.
Теперь у вас не появится надпись «приложение несовместимо с вашим устройством». Что делать, если она появилась у ваших близких, вы уже знаете.
Все последние улучшения в Android на уровне ОС касаются защиты приложений и пользовательских данных, а также более упорядоченного предоставления доступа. Несмотря на преимущества изменений, они также предполагают дополнительную работу для разработчиков.
В целях повышения конфиденциальности пользователей Android 11 добавлены некоторые существенные изменения и ограничения. Как указано в превью поведенческих изменений, они состоят в следующем:
Принудительное использование хранилища с ограниченной областью видимости (Scoped storage): доступ к каталогам внешних хранилищ ограничен каталогом конкретного приложения и определенными типами носителей, созданных приложением.
Автоматический сброс разрешений: если пользователи не взаимодействовали с приложением в течение нескольких месяцев, система автоматически сбрасывает конфиденциальные разрешения приложения.
Фоновый доступ к местоположению: пользователи должны быть направлены в системные настройки, чтобы предоставить приложениям разрешение на фоновое определение местоположения.
Видимость пакета: когда приложение запрашивает список установленных приложений на устройстве, возвращенный список фильтруется.
Недавно я глубоко погрузился в концепцию Scoped storage, чтобы понять, чего ожидать в будущем, и соответственно подготовить свое Android-приложение к переменам.
Прежде чем перейти к тому, что касается реализации, сначала разберемся, как было организовано хранилище данных до Android 10:
- Частное хранилище (Private Storage): все приложения имеют собственный частный каталог во внутреннем хранилище, то есть Android/data/, невидимый для других приложений.
- Общее хранилище (Shared Storage): остальная часть хранилища, помимо частных разделов, называлась общим хранилищем. Оно включает в себя все медиа- и немедийные файлы, сохраненные в системе, и приложение с разрешением на хранение может легко получить к ним доступ.
Есть ли , на ваш взгляд, какие-то проблемы в структуре, которую мы рассмотрели выше? Не хотелось ли вам, чтобы Google что-нибудь здесь изменил?
Давайте подробнее остановимся на некоторых проблемах.
- Допустим, у нас приложение для электронной коммерции, которому нужен доступ к хранилищу только для того, чтобы пользователь смог загрузить фото профиля. Значит, ему нужно предоставить доступ к определенному файлу или файловой системе. Другой пример: нам нужно загрузить или сохранить медиа-файл из чат-приложения, а для этого нужен доступ к одному медиа-файлу. Так зачем же предоставлять доступ к хранилищу целиком?
- Может оказаться так, что конфиденциальные данные, такие как медицинские рецепты или банковские чеки, будут доступны всем приложениям, установленным на устройстве.
- После удаления приложения нет возможности убедиться, что все связанные с ним данные и файлы полностью очищены.
Уверен, это должно заставить вас задуматься о безопасности приложений и данных, а также о конфиденциальности и организации. Не волнуйтесь, недавнее обновление Google для Android уже спешит на помощь.
Google приводит две веские причины, по которым вводится это изменение: безопасность и уменьшение оставшихся после удаления приложений данных.
Песочница приложений, изолирующая приложения друг от друга, — это ключевая часть дизайна Android. Взяв за основу все тот же самый основополагающий принцип, в Android Q компания Google представила хранилище с ограниченной областью видимости.
Эти изменения первоначально планировалось применить к каждому приложению на телефоне под управлением Android 10 или более поздней версии, но из-за негативной реакции разработчиков Google изменил курс и потребовал использовать хранилище с ограниченной областью видимости только для приложений, ориентированных на Android API уровня 29, то есть Android 10. Но с Android 11 Scoped Storage вернулся, и на сей раз Google вряд ли передумает.
- Улучшенная атрибуция: приложению будет предоставлен доступ к блокам хранения, которые содержат соответствующие данные приложения.
Посмотрите на структуру хранения данных в Android 10 и выше:
Частное хранилище остается без изменений, но общее хранилище дополнительно делится на коллекцию медиа и загрузок (немедийных файлов).
- Уменьшение беспорядка в файлах: система свяжет хранилище с приложениями-владельцами, чтобы системе было легче находить файлы, относящиеся к приложению. Таким образом, при удалении приложения все связанные с ним данные также будут удалены.
- Предотвращение злоупотребления разрешением READ_EXTERNAL_STORAGE: предоставление этого разрешения на сегодняшний день дает приложению доступ ко всему внешнему хранилищу, где хранятся личные фотографии, документы, видео и другие потенциально конфиденциальные файлы. Однако при применении Scoped storage приложения смогут видеть только собственные папки данных и определенные типы носителей, такие как музыкальные файлы, используя другие API хранилища.
С этими обновлениями пользователи смогут лучше контролировать файлы и предоставление к ним доступа. Кроме того, на устройстве освободится дополнительное пространство, так как ненужные файлы будут удаляться вместе с приложением.
- Неограниченный доступ к индивидуальному хранилищу приложений: приложение будет иметь неограниченный доступ к внутреннему и внешнему хранилищу как для чтения, так и для записи. В Android 10 не нужно предоставлять разрешение на хранение для записи файлов в каталог приложений на SD-карте.
- Неограниченный доступ к коллекциям медиафайлов и загрузок (добавленным собственноручно): вы получаете неограниченный доступ для добавления файлов в коллекции и загрузки приложения. При сохранении изображения, видео или любого другого медиафайла из коллекции не нужно запрашивать разрешение (если файл хранится в организованной коллекции.)
- Доступ к коллекции медиафайлов других приложений можно получить с помощью разрешения READ_STORAGE_PERMISSION. Разрешение WRITE_STORAGE_PERMISSION со следующей версии станет устаревшим и будет работать так же, как READ_STORAGE_PERMISSION.
- Для записи и чтения немедийных файлов, добавляемых другими приложениями, понадобятся API-интерфейсы доступа к хранилищу.
Примечание из документации по обновлению хранилища в Android 11: Если приложение использует устаревшую модель хранения и ранее предназначалось для Android 10 или ниже, возможно, его данные сохраняются в каталоге, к которому приложение не может получить доступ, когда задействована модель хранилища с областью видимости. Прежде чем перейти на Android 11, перенесите данные в каталог, совместимый с хранилищем ограниченной области видимости. В большинстве случаев перенести данные можно в каталог конкретного приложения.
Чтобы дать разработчикам дополнительное время для тестирования, приложения, ориентированные на Android 10 (уровень API 29), все еще могут запрашивать атрибут requestLegacyExternalStorage. Этот флаг позволяет приложениям временно отказаться от изменений, связанных с областью хранения, таких как предоставление доступа к различным каталогам и различным типам медиафайлов.
Любое приложение, предназначенное для Android 11 или более поздней версии, должно использовать новые API хранилища, включая хранилище с ограниченной областью видимости. Изменения в соглашении разработчика Google Play гласят, что, начиная с 1 августа 2020 года, все новые приложения, представленные в Google Play, должны быть нацелены на Android 10 или более позднюю версию, а все обновления существующих приложений должны быть ориентированы на Android 10 или более позднюю версию с 1 ноября 2020 года. Если все продолжится в том же духе, то в следующем году приложения, скорее всего, будет обязательно ориентировать уже на Android 11.
Сейчас самое подходящее время для того, чтобы изучить и реализовать новые изменения.
Кратко рассмотрим некоторые часто выполняемые операции хранения и способы их выполнения:
- Выбор файла: используйте ACTION_OPEN_DOCUMENT — он открывает системное приложение для выбора файлов, предоставляя пользователю возможность выбрал файл, который нужно открыть. Чтобы отобразить только те типы файлов, которые поддерживаются приложением, укажите тип MIME.
- Выбор папки: Интент ACTION_OPEN_DOCUMENT можно заменить на ACTION_OPEN_DOCUMENT_TREE .
Примечание: этот доступ будет действителен до тех пор, пока пользователь не перезагрузит устройство. Если приложение хочет сохранить доступ, получая доступ к URI с помощью преобразователя содержимого, преобразователь содержимого должен вызвать метод takePersistableUriPermission .
Кроме того, если вы перебираете большое количество файлов в каталоге, доступ к которому осуществляется с помощью ACTION_OPEN_DOCUMENT_TREE , производительность приложения может снизиться.
- Создание файла: чтобы сохранить файл в определенном месте, используйте ACTION_CREATE_DOCUMENT .
Примечание из документации разработчиков Android: ACTION_CREATE_DOCUMENT не может перезаписать существующий файл. Если приложение пытается сохранить файл с тем же именем, система добавляет число в скобках в конце имени файла.
Если приложение предназначено для Android 10 (уровень API 29) или выше, то для того, чтобы оно могло извлекать неотредактированные метаданные Exif из фотографий, необходимо объявить разрешение ACCESS_MEDIA_LOCATION в манифесте приложения, а затем запросить это разрешение во время выполнения.
Внимание: поскольку вы запрашиваете разрешение ACCESS_MEDIA_LOCATION во время выполнения, нет никакой гарантии, что приложение имеет доступ к неотредактированным метаданным Exif из фотографий. Приложение требует явного согласия пользователя, чтобы получить доступ к этой информации.
Существует обходной путь для приложений по типу файловых менеджеров, которые тоже должны иметь полный доступ ко всему. Нужно выполнить следующие простые шаги, перечисленные в инструкции по обновлению хранилища в Android 11:
Приложениям, действующим по закону, эти разрешения необходимы.
Как только пользователь предоставит разрешение на широкий доступ, он получит нефильтрованное представление MediaStore, которое включает в себя немедийные файлы.
Только приложения, которым Google предоставит такую возможность, будут иметь полный доступ к хранилищу. Для этого отправьте форму декларации в Google Play и получите место в утвержденном списке.
Что делать, если приложение задействует кастомный выбор файлов, который отображает точные каталоги данных? В этом случае ничего нельзя сделать. Возможно, стоит перейти на системное средство выбора файлов.
Читайте также: