Адаптируйте свое приложение, понимая, что делают пользователи

Мобильные устройства для многих стали неотъемлемой частью повседневной жизни. Ваши пользователи носят свои телефоны с собой в течение дня, когда они водят машину, гуляют, занимаются спортом, работают и играют.

Понимание того, что пользователи делают в физическом мире, позволяет вашему приложению более эффективно взаимодействовать с ними. Например, приложение может начать отслеживать сердцебиение пользователя, когда он начинает бегать, другое приложение может переключиться в режим автомобиля, когда обнаружит, что пользователь начал движение.

API распознавания активности построен на основе датчиков, доступных на устройстве. Сенсоры устройств предоставляют информацию о том, что пользователи делают в данный момент. Однако с десятками сигналов от нескольких датчиков и небольшими различиями в том, как люди что-то делают, определить, что делают пользователи, непросто.

API распознавания действий автоматически обнаруживает действия, периодически считывая короткие пакеты данных с датчиков и обрабатывая их с помощью моделей машинного обучения. Чтобы оптимизировать ресурсы, API может перестать сообщать об активности, если устройство какое-то время не двигалось, и использовать датчики с низким энергопотреблением, чтобы возобновить отчеты при обнаружении движения.

Получайте информацию о деятельности с использованием минимальных ресурсов

Некоторым приложениям интересно знать, когда пользователь начинает или останавливает определенное действие. Например, приложение для отслеживания пробега может начать отслеживать мили, когда пользователь начинает движение, или приложение для обмена сообщениями может отключать звук во всех разговорах, пока пользователь не остановится за рулем.

API Activity Recognition Transition позволяет использовать эти сценарии, выполняя тяжелую работу, связанную с обнаружением изменений в действиях пользователя. Ваше приложение подписывается на переход в интересующих вас действиях, и API уведомляет ваше приложение только тогда, когда это необходимо. Вам не нужно реализовывать сложную эвристику, чтобы определить, когда действие начинается или заканчивается.

API распознавания действий передает свои результаты обратному вызову, который обычно реализуется в приложении как IntentService . Результаты доставляются с указанными вами интервалами, или ваше приложение может использовать результаты, запрошенные другими клиентами, без дополнительного потребления энергии.

Вы можете сообщить API, как доставлять результаты, используя PendingIntent , что устраняет необходимость в постоянной работе службы в фоновом режиме для целей обнаружения активности. Ваше приложение получает соответствующие Intents от API, извлекает обнаруженные действия и решает, следует ли ему предпринимать действия. Вызов службы только при получении действия сохраняет ресурсы, например память.

API распознавания активности выполняет тяжелую работу, обрабатывая сигналы от устройства для определения текущих действий. Ваше приложение получает список обнаруженных действий, каждое из которых включает свойства confidence и type .

Свойство confidence указывает на вероятность того, что пользователь выполняет действие, представленное в результате. Свойство type представляет обнаруженную активность устройства по отношению к сущностям в физическом мире, например, устройство находится на велосипеде или устройство находится на пользователе, который работает .