Xmppチャットアプリケーションに取り組んでいます。
私のPacketListenerで、サブスクリプションリクエストを処理しようとしていますが、AlertDialogを除いて、すべてチャームのように機能しています。表示されないため、ユーザーからの確認が取れません。
私はもう試した 、
Toast.makeText()
- UI(TextView)の変更
getApplicationContext()
それ以外のDisplay.this
しかし、それらのどれも機能しません。
私が言ったように、私はエラーを取得していません、私もデバッグしようとしました、それはコード側で働いているようです。
これが私のコードです、
//imports....
public class Display extends Activity {
//....more codes
private void addListener() {
//subscribe request handler
Roster roster = conn.getRoster();
roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
PacketListener packetListener = new PacketListener() {
@Override
public void processPacket(Packet packet) {}
};
conn.addPacketListener(packetListener, new PacketFilter(){
@Override
public boolean accept(Packet packet) {
// TODO Auto-generated method stub
final Presence presence = (Presence)packet;
subscriptonAnswer = false;
if(packet instanceof Presence) {
if(((Presence)packet).getType().equals(Presence.Type.subscribe)) {
new AlertDialog.Builder(Display.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Subscription Message")
.setMessage(StringUtils.parseName(packet.getFrom())+ " wants to add you, do you accept?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
Presence reply = new Presence(Presence.Type.subscribed);
reply.setTo(presence.getFrom());
conn.sendPacket(reply);
}
})
.setNegativeButton("No", null)
.show();
}
}
return true;
}});
}
//....more codes
}