Автор smack-omemo здесь.
Вы, вероятно, хотите убедиться, что получили все отпечатки пальцев своего контакта, позвонив по номеру OmemoManager.requestDeviceListUpdateFor(contactJid)
.После этого у вас должен быть полный список устройств контактов после вызова вашего кода.
Что касается того, как узнать, какой отпечаток принадлежит какому устройству: Как правило, вы хотите предоставить пользователю список отпечатков пальцев обоихих собственные и их контакты устройства.Таким образом, вы можете узнать, какое устройство и какое, сравнивая отпечатки пальцев.
В протоколе OMEMO ключи преднамеренно не идентифицируются по описательному имени (например, «телефон», «рабочий стол» и т. Д.) По порядку.мотивировать пользователей проверять отпечатки пальцев путем сканирования QR-кодов.Исключение, которое вы включили в свой вопрос, является показателем того, что отправляющее устройство «забыло» доверять принимающему устройству, в результате чего сообщение не зашифровано для принимающего устройства.В идеале вы должны предупредить пользователя, если он попытается отправить сообщение контакту, у которого есть «неопределившиеся» устройства, и попросить его проверить это устройство / принять решение, доверять этому устройству или нет - снова, в идеале, сканируя QR-код.код.
Кстати: вы можете поделиться ссылкой на OlmOmemo?Я ничего не могу найти с Google, но я хотел бы взглянуть на то, как они реализовали мои интерфейсы smack-omemo:)