- Ошибка в iOS-версии WhatsApp позволяет обойти биометрическую аутентификацию
- Android: выдвигающийся экран снизу
- Зависимости
- Создание макетов
- Container view
- Динамическое управление
- Прикрепление элементов к нижнему экрану
- Скрытие плавающей кнопки при скроле
- Android 11: Share sheet groups together share targets by app
- More on Android 11 Beta:
- Исследование Android Q: Sharing Shortcuts
- Getting Started with Sharing Shortcuts in Android Q
- What was Direct Share API?
- Differences between Direct Share API and Sharing Shourtcut API
- Step 01
- Step 02
- Step 03
- Step 04
Ошибка в iOS-версии WhatsApp позволяет обойти биометрическую аутентификацию
Для того чтобы обойти биометрический вход, достаточно просто отправить файлы с помощью инструмента Share Sheet.
В начале февраля нынешнего года в iOS-версии популярного чат-сервиса WhatsApp появилась поддержка биометрической аутентификации, позволив владельцам iPhone 8 и более старых моделей использовать Touch ID, а пользователям iPhone X, XS и XR — Face ID для доступа к чатам. Как оказалось, благодаря ошибке в приложении биометрическую аутентификацию можно легко обойти.
Согласно сообщению пользователя Reddit с псевдонимом de_X_ter, для того, чтобы обойти биометрический вход, достаточно просто поделиться файлами с помощью инструмента Share Sheet в iOS, предназначенного для отправки документов, ссылок, фотографий и прочих файлов. Для воспроизведения ошибки потребуется установить одну из опций блокировки («через 1 минуту», «через 15 минут» или «через 1 час»). Как отмечается, при установке параметра «Немедленно» уязвимость не проявляется.
Как поясняет de_X_ter, для обхода блокировки нужно открыть Share Sheet и кликнуть на иконку WhatsApp в списке приложений. По идее, при переходе на другой экран должен отобразиться запрос на авторизацию с помощью FaceID или TouchID (в зависимости от устройства), однако на практике этого не происходит. Далее нужно выйти с домашнего экрана iOS и открыть WhatsApp.
В настоящее время неясно, известно ли WhatsApp об ошибке и намерена ли компания ее исправить, учитывая, что сейчас она работает над реализацией похожего функционала в Android-версии мессенджера.
Напомним, ранее WhatsApp уличили в предоставлении доступа к чужим сообщениям при установке приложения на новом устройстве с новым номером телефона.
Источник
Android: выдвигающийся экран снизу
Данная статья является переводом статьи Emrullah Luleci, а также её продолжения.
Нижний экран (Здесь и далее под «нижним экраном/слоем» будет подразумеваться элемент bottom sheet — прим. пер.) — компонент, выезжающий снизу экрана, который используется для отображения дополнительного контента. Подробнее об этом элементе можно узнать на официальной сайте посвященном материальному дизайну.
Зависимости
Для использования этого элемента, добавьте последние версии библиотек поддержки в свой проект:
Создайте класс наследник от AppCompatActivity:
Создание макетов
Содержимое нижнего экрана
Для удобства воспользуемся макетами. Назовем файл с нижним слоем bottom_sheet.xml.
behavior_peekHeight: Определяет высоту видимой части.
behavior_hideable: Определяет, может ли нижний экран скрываться свайпом вниз.
Container view
Создайте CoordinatorLayout в качестве корневого вью. Добавьте в него прямым наследником bottom_sheet.xml. Элементы app_bar и activity_bottom_sheet_content не имеют прямого отношения к нижнему экрану, поэтому их можно заменить или удалить.
На данном этапе нижний экран должен работать примерно так:
Динамическое управление
Поведением и свойствами нижнего экрана можно также управлять динамически с помощью Java.
Прикрепление элементов к нижнему экрану
Также можно прикрепить вью к нижнему экрану, чтобы прикрепленный элемент перемещался одновременно с нижним слоем.
Добавим Floating Action Button в макет созданный выше. Новый компонент должен являться непосредственным наследником CoordinatorLayout также как и bottom_sheet. Для прикрепления элемента к нижнему экрану необходимо добавить app:layout_anchor с id вью нижнего экрана, а также app:layout_anchorGravity со значением top|end.
Теперь плавающая кнопка закреплена в верхнем углу нашего нижнего экрана и перемещается вместе с ним.
Скрытие плавающей кнопки при скроле
Для скрытия кнопки при скроле необходимо добавить слушатель к нижнему экрану и отображать/скрывать кнопку. Для начала найдем необходимые вью:
Для скрытия кнопки в момент начала скрола и отображения после полного сворачивания нижнего экрана, используйте следующее:
Результат обоих вариантов можно увидеть ниже:
Источник
Android 11: Share sheet groups together share targets by app
— Jul. 8th 2020 1:13 pm PT
The second proper version of the Android 11 Beta released today, and in it we’ve found that the Android share sheet has been reorganized to only show apps instead of each individual share target.
For a few years now, Google has been trying to improve Android’s share sheet, the list of ways that you can share text, files, and photos on your phone into another app or device. With Android 10, Google managed to significantly speed up the share sheet, a long-awaited quality of life change.
Now with Android 11, they’re looking to clean up the share sheet menu to not have quite so many things to choose from on screen simultaneously. If an app has more than one way to share — Twitter, for example, can share to a new tweet or to a direct message — on Android 10, you’ll see two separate Twitter icons in the share sheet.
As of Android 11 Beta 2, the share sheet only shows an app’s name and icon, and if there’s more than one target, there will also be a dropdown arrow. Tapping the app in the share sheet will let you choose between the multiple targets offered by that app, and long-pressing the app brings up the option to pin the targets.
While the organizational benefits here are absolutely fantastic and long needed, it does introduce an extra step into the process for sharing — at least for apps that have more than one share target. One could argue that the reorganized share sheet doesn’t need to be scrolled quite as much, meaning the benefit still outweighs the extra tap.
More on Android 11 Beta:
FTC: We use income earning auto affiliate links. More.
Источник
Исследование Android Q: Sharing Shortcuts
Перевод статьи о нововведениях версии мобильной операционной системы Android Q. В этой статье описывается, как мы можем реализовать новый подход для Sharing Shortcuts в наших приложениях, а также некоторые вещи, которые следует учитывать при этом.
Несколько недель назад мы увидели анонс бета-версии Android Q. С этой версией Android приходит коллекция захватывающих изменений. В этом наборе статей я собираюсь углубиться в каждую из них, чтобы мы были полностью готовы к тому, как подготовить наши приложения!
Примечание. Код этой статьи можно найти здесь.
Как указано в примечаниях к выпуску бета-версии для Android Q, одним из изменений, которые мы наблюдаем, являются некоторые изменения в том, как работает функция Direct Share Android. Direct Share API позволяет разработчикам предусматривать прямых получателей, с которыми мы хотели бы поделиться контентом через лист обмена system share sheet — будь то контакт в вашем любимом приложении для обмена сообщениями или электронная почта. Это дает вам быстрый способ поделиться контентом с ними напрямую. Однако, хотя эта функция довольно аккуратна, ее выполнение никогда не было гладким. Одна из важных вещей — это задержка загрузки этих контактов — посмотрите пример ниже:
Здесь вы заметите задержку загрузки опций Direct Share. Это часто случалось со мной также всякий раз, когда я открывал список system share sheet. Несколько раз я случайно делился чем-то с контактом, а не с приложением, потому что после задержки загружалось больше опций, и мой первоначальный выбор перемещался дальше вниз по листу обмена.
Чтобы улучшить опыт, предоставляемый system share sheet, у нас теперь есть доступ к новому подходу, известному как Sharing Shortcuts. Это изменяет способ, которым приложения предоставляют эти прямые параметры для совместного использования, а это означает, что они будут извлечены намного быстрее при открытии system share sheet, исключая некоторые задержки, которые ранее имели место.
Чтобы это работало, нам нужно предоставить список целей общего ресурса, которые будут использоваться во время выполнения. Способ, которым это реализовано, очень похож на API-интерфейсы ярлыков, которые мы использовали в наших приложениях, что позволяет пользователям легко получать доступ к функциям нашего приложения. И подобно тому, как мы объявляем статические ярлыки приложений, определение этих ярлыков общего ресурса начинается с объявления цели общего ресурса в нашем каталоге res / xml. Здесь мы объявляем элемент shortcuts с вложенной share-target — эта цель используется для определения:
- Target class: используется для объявления действия, которое должно быть запущено при активном использовании общего ресурса.
- Mime type: тип данных, для которого должна быть указана общая цель.
- Category name: имя категории общего ресурса, оно также будет использоваться программно при настройке цели общего ресурса. Можно определить несколько категорий.
Так, например, если бы у меня было действие под названием ShareActivity, которое обрабатывало общие текстовые ресурсы, то XML-файл ярлыков, определяющий это, выглядел бы так:
Источник
Getting Started with Sharing Shortcuts in Android Q
With Andorid Q launching with some awesome features, It also launched Sharing Shortcuts in Android Q. In Q, Direct Share API is replaced with Sharing Shortcut API.
What was Direct Share API?
With Android M, Android provided this feature in which we can define direct user targets. This targets were shared to user by via Share Menu. This feature allows users to share content to targets, such as contacts, within other apps. For example, the direct share target might launch an activity in another social network app, which lets the user share content directly to a specific friend or community in that app.
In Android Q, Direct Share API will still keep on working but with Low Priority then Sharing Shortcuts.
Differences between Direct Share API and Sharing Shourtcut API
- Sharing Shortcut API is faster compared to Direct Share API as it provides the list of targets before hand only.
- In Direct Share API, we required to write a bit of code for ChooserTarget Service but in Sharing Shortcut it is handled by the API itself.
- The new API uses a push model, versus the pull model used in the old DirectShare API. This makes the process of retrieving direct share targets much faster when preparing the ShareSheet. From the app developer’s point of view, when using the new API, the app needs to provide the list of direct share targets ahead of time, and potentially update the list of shortcuts every time the internal state of the app changes (for example, if a new contact is added in a messaging app).
In this blog, we will learn how to implement the Sharing Shortcut API step by step
Step 01
First we have to implement share target element in XML under res/xml folder.
- tag defines the shortcut and in this code it will be handled by ShareActivity and will respond to content type text/plain. tag defines the type of data
- category> tag defines the category of the data used to match an app’s published shortcuts with its share target definitions.
Step 02
1. We have to add the following to create a reference in Manifest file to support old Direct Share API for backward copatibility
2. The App Manifest should contain the meta data to work with compatible library.
Step 03
Now we have to add tag in our launched activity to create the reference of Share Shortcut.
Step 04
Now we have to add our shortcuts, to make sure when the sharesheet opens it is already there.
- setShortLabel sets the text for shortcut
- setPerson adds a relevant person which is needed for the the shortcut. (if we want to add multiple person, we can use setPersons() )
- setLongLived means when a shortcut is set to be long lived, it means that system services can still access it from the cache even after it has been removed as a dynamic shortcut.
Now, to test just try sharing a text from chrome and you will see a screen like following,
Credit: Google Sample
and also if we long press the App icon we will se the following,
Credit: Google Sample
That is how we can get started in using Sharing Shortcuts in our app.
Источник