Android 为什么我';m始终获取状态类型是否不可用?

Android 为什么我';m始终获取状态类型是否不可用?,android,Android,我开发了一个简单的聊天应用程序,其中使用了asmack库和openfire服务器。 但当我使用相同的工具开始聊天时,我总是会发现状态不可用,因为该用户在openfire服务器上可用 尝试过各种方法,测试过talk.google.com服务器的相同代码,效果非常好。这里我设置用户的状态- Presence presence = new Presence(Presence.Type.available); ; presenc

我开发了一个简单的聊天应用程序,其中使用了asmack库和openfire服务器。 但当我使用相同的工具开始聊天时,我总是会发现状态不可用,因为该用户在openfire服务器上可用

尝试过各种方法,测试过talk.google.com服务器的相同代码,效果非常好。这里我设置用户的状态-

                  Presence presence  = new Presence(Presence.Type.available); ; 
                  presence.setStatus("Online, Programmatically!");
                  presence.setPriority(24);
                  presence.setMode(Presence.Mode.available);
                  connection.sendPacket(presence);
                  try {
                    Thread.sleep(10000);
                  } catch (InterruptedException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                  }
当我显示花名册条目时,我得到的状态是空的,状态类型是不可用的,我不知道为什么会发生这种情况,我尝试过各种方法。我正在同一台机器上的两个不同模拟器上测试我的代码。是因为同样的原因吗

下面是显示花名册条目和出席类型的代码

                   Roster roster = connection.getRoster();
                  Roster.setDefaultSubscriptionMode(Roster.SubscriptionMode.accept_all);
                  roster.addRosterListener(new RosterListener() {
                      // Ignored events public void entriesAdded(Collection<String> addresses) {}
                      public void entriesDeleted(Collection<String> addresses) {}
                      public void entriesUpdated(Collection<String> addresses) {}
                      public void presenceChanged(Presence presence) {
                          System.out.println("Presence changed: " + presence.getFrom() + " " + presence);
                      }
                      @Override
                      public void entriesAdded(Collection<String> arg0) {
                          // TODO Auto-generated method stub
                      }
                  });
                  try { Thread.sleep(5000); } catch (InterruptedException e) { }
                  Collection<RosterEntry> entries = roster.getEntries();                
                  for (RosterEntry entry : entries) {                           
                      Presence subscribed = new Presence(Presence.Type.subscribed); 
                      subscribed.setTo(entry.getUser()); 
                      connection.sendPacket(subscribed);

                      Log.d("JWP", "RosterEntry " + entry);
                      Log.d("JWP", "User: " + entry.getUser());
                      Log.d("JWP", "Name: " + entry.getName());
                      Log.d("JWP", "Status: " + entry.getStatus());
                      Log.d("JWP", "Type: " + entry.getType());               
                      Presence entryPresence = roster.getPresence(entry.getUser());
                      Log.d("JWP", "Presence Status: "+ entryPresence.getMode());
                      Log.d("JWP", "Presence Type: " + entryPresence.getType());

                      Presence.Type type = entryPresence.getType();
                      if (type == Presence.Type.available){
                          Log.d("JWP", "Presence AVIALABLE");
                          Log.d("JWP", "Presence : " + entryPresence);
                      }
                  }
花名册=connection.get花名册();
花名册.setDefaultSubscriptionMode(花名册.SubscriptionMode.accept_all);
花名册.addRosterListener(新花名册Listener(){
//已忽略事件已添加公共void entriesAdded(集合地址){}
已删除公共无效项(集合地址){}
公共无效项已更新(集合地址){}
公共无效状态已更改(状态){
System.out.println(“状态更改:“+Presence.getFrom()+”+Presence”);
}
@凌驾
已添加公共无效项(集合arg0){
//TODO自动生成的方法存根
}
});
试试{Thread.sleep(5000);}catch(InterruptedException e){}
集合条目=花名册.getEntries();
对于(名册条目:条目){
订阅状态=新状态(Presence.Type.subscribed);
subscribed.setTo(entry.getUser());
连接发送包(已订阅);
Log.d(“JWP”、“RosterEntry”+条目);
Log.d(“JWP”,“User:+entry.getUser());
Log.d(“JWP”,“Name:”+entry.getName());
Log.d(“JWP”,“Status:+entry.getStatus());
Log.d(“JWP”,“Type:+entry.getType());
Presence entryPresence=花名册.getPresence(entry.getUser());
Log.d(“JWP”,“状态:”+entryPresence.getMode());
Log.d(“JWP”,“状态类型:”+entryPresence.getType());
Presence.Type=entryPresence.getType();
if(type==Presence.type.available){
Log.d(“JWP”,“可在场”);
日志d(“JWP”,“存在:”+入口存在);
}
}