Я разрабатываю приложение для Android, которое будет служить голосовым помощником с помощью VoiceInteractionService. Предположительно, я наткнулся на стену, пытаясь поддерживать многопользовательскую среду Android.
Моему приложению необходимо предоставить голосового помощника для нескольких пользователей, которые одновременно вошли в одно и то же устройство Android, причем у каждого пользователя есть свой собственный экземпляр приложения. Поэтому, конечно, здесь задействовано несколько экранов.
Что работает:
Для одного активного пользователя (например, пользователя 10) мой VoiceInteractionService инициализируется правильно, вызывается onReady(), и все работает как положено.
Я успешно настроил многопользовательскую среду на своем устройстве и могу запустить приложение для двух отдельных пользователей (пользователя 10 и пользователя 11) одновременно время.
Точка отказа:
Проблема начинается, когда приложение второго пользователя пытается инициализировать свою службу VoiceInteractionService. Служба для второго экземпляра пользователя никогда не становится готовой — ее обратный вызов onReady() никогда не вызывается.
Мой основной вопрос:
Разработана ли служба VoiceInteractionService как синглтон системного уровня, которая может иметь только один активный сеанс для всех пользователей на устройстве? Я копался в документации, но не смог найти однозначного ответа о его поведении в многопользовательском контексте.
Любой опыт или понимание этого вопроса было бы потрясающе. Заранее спасибо!
TLDR: Моя VoiceInteractionService работает для основного пользователя, но не может инициализироваться для дополнительного пользователя при одновременной работе в многопользовательском режиме Android. Это известное ограничение?
Подробнее здесь: https://stackoverflow.com/questions/797 ... -second-us