XMPPベースの通信用のAndroidアプリでSmackを使用しています。PrivacyManagerを使用してプライバシーリストを作成しようとしています。PrivacyListを正常に作成しましたが、そのリストにアクセスしようとすると、ClassCastExceptionが返されます。コードは次のとおりです。
PrivacyListManager privacyManager;
privacyManager = PrivacyListManager.getInstanceFor(connection);
PrivacyList privacyList = privacyManager.getPrivacyList("msg_block_list");
もう少し調べてみると、次の行のPrivacyListManager.javaクラスのgetRequestメソッドで例外が発生していることがわかりました。
Privacy privacyAnswer =
(Privacy) response.nextResult(SmackConfiguration.getPacketReplyTimeout());
getRequestメソッドは次のとおりです。
private Privacy getRequest(Privacy requestPrivacy) throws XMPPException {
// The request is a get iq type
requestPrivacy.setType(Privacy.Type.GET);
requestPrivacy.setFrom(this.getUser());
// Filter packets looking for an answer from the server.
PacketFilter responseFilter = new PacketIDFilter(requestPrivacy.getPacketID());
PacketCollector response = connection.createPacketCollector(responseFilter);
// Send create & join packet.
connection.sendPacket(requestPrivacy);
// Wait up to a certain number of seconds for a reply.
Privacy privacyAnswer =
(Privacy) response.nextResult(SmackConfiguration.getPacketReplyTimeout());
// Stop queuing results
response.cancel();
// Interprete the result and answer the privacy only if it is valid
if (privacyAnswer == null) {
throw new XMPPException("No response from server.");
}
else if (privacyAnswer.getError() != null) {
throw new XMPPException(privacyAnswer.getError());
}
return privacyAnswer;
}
私はPrivacyListを実装するためにこのチュートリアルに従いました。誰でも助けることができますか?