如何解析android asmak中自定义消息扩展的数据

时间:2016-03-15 11:38:51

标签: android chat asmack

<message id="64Vz5-10" to="210@localhost" type="chat"><body>idirkfkckckckcjdjdnx hdhdjcj</body><MediaType xmlns="jabber:client">1</MediaType><MediaPlaceHolder xmlns="jabber:client">AFGDSGYWY+VXXBNVNXVVX+J3VGSFSJFSSJSFJFS+FJS</MediaPlaceHolder><RemoteURL xmlns="jabber:client">http://www.google.com</RemoteURL></message>

如何解析Android中给定响应的值?

我正在尝试获取MediaType,MediaPlaceHolder和RemoteURL的值。

这就是我在做的事情:

if (packet instanceof Message) {
    Message message = (Message) packet;
    if (message.getBody() != null) {
        Log.e(" message.toXML()", message.toXML() + '\n' + "  :  " + packet.toXML());

        //Get extension from message
        try {
            CustomExtension fileExt = (CustomExtension) message.getExtension(CustomExtension.NAMESPACE);
            // PacketExtension ext = message.getExtension(CustomExtension.ELEMENT_MEDIA_HOLDER);
            // Log.e("File Extension ", "description:----" + ext.toXML());
            if (fileExt != null) {
                //Get values from extension
                String filePath = fileExt.getFileType();
                System.out.println("Message --:" + message.getBody() + " File url:--" + filePath);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        String fromName = StringUtils.parseBareAddress(message.getFrom());

我收到ClassCastException:

  

org.jivesoftware.smack.packet.DefaultPacketExtension

0 个答案:

没有答案