我正在使用 Omemo 和 smack 库来创建聊天应用程序。我有以下场景:我想在两个设备之间进行通信,设备 A 和设备 B。A 正在向 B 发送消息。我想发现 B 的指纹,以便检查我是否信任该设备. 我正在做的是使用这种方法:
HashMap<OmemoDevice, OmemoFingerprint> activeFingerprints =
omemoManager.getActiveFingerprints(JidCreate.bareFrom(jid));
for (final Map.Entry<OmemoDevice, OmemoFingerprint> entry : activeFingerprints.entrySet()) {
result = omemoManager.isTrustedOmemoIdentity(entry.getKey(), entry.getValue());
if (!result) {
break;
}
}
但这有时会返回给我 6 个指纹,我不知道哪个是确切的。因此,我认为我经常收到这条消息:
java:1162) 2019-03-04 13:28:30.115 4291-5181/com.inpedio.sphone W/System.err: 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 2019- 03-04 13:28:30.115 4291-5181/com.inpedio.sphone W/System.err: at java.lang.Thread.run(Thread.java:764) 2019-03-04 13:28:30.116 4291- 5181/com.inpedio.sphone W/OmemoService:内部 omemoMessageListener 无法解密传入的 OMEMO 消息:传输的密钥无法解密,因为没有提供消息密钥。提供密钥:[1546815194] 内部 omemoMessageListener 无法解密传入的 OMEMO 消息:无法解密传输的密钥,因为没有提供消息密钥。提供密钥:[1546815194] 内部 omemoMessageListener 无法解密传入的 OMEMO 消息:无法解密传输的密钥,因为没有提供消息密钥。提供密钥:[1546815194]
我正在使用 OlmOmemo 和 smack 库。