2018 O încercare de conectare la serverul xmpp de la asmack pe sistemul de operare Android nu mă primește - nu permisiuni

Am făcut acest lucru cât de simplu pot în cod. Eu folosesc biblioteca asmack pentru Android în versiunea 8-0.8.3.

Nu îngheață cererea mea și mă provoacă și erori. nu există permisiune DNS activă. Nu este nimic online despre asta.

Chiar sper să primesc niște ajutor sau sfaturi.

De asemenea, am încercat acest lucru:

string final static final server_host = "jabber.org"; statică finală privată INT SERVER_PORT = 5222;

void publice xmppService () aruncă XMPPException

Folosind biblioteca după gust, în loc de asmack, mă face aceeași problemă. Nu primesc jurnalul de erori, dar după dezactivarea programului de depanare, obțin:

2018 O încercare de conectare la serverul xmpp de la asmack pe sistemul de operare Android nu mă primește - nu permisiuni

Top 5 răspunsuri

Vă recomandăm să utilizați Smack în loc de aSmack. Asmack este patch-uri și versiunea îmbunătățită a lui Smack și aSmack sunt oarecum moarte. Se va face refactorizarea codului smack, vor fi adăugate câteva metode noi și vor fi refactorizabile clasele DNS.

UPDATE Când văd logoul meu de eroare, se pare că este vorba de un apel de rețea pe firul principal al interfeței de utilizator

Cum de a rezolva excepția NetworkOnMainThread? Folosind AsyncTask, care face apel la rețea pe un alt fir (în fundal), și nu pe firul principal al aplicației.

Plasați cursorul codul pentru AsynTask. -

Și acum puteți rula AsyncTask-ul. -

Cu aceasta, apelul de rețea va fi executat în fundal într-un alt fir.

Din README

Pentru a putea funcționa corect pe Android, trebuie să vă înregistrați clap Providers extensii XMPP și moduri manuale și unele blocuri de cod statice înainte de a face orice activty XMPP. SmackAndroid.init (Context) vocație (în org.jivesoftware.smack) va face pentru tine.

Doar apelați SmackAndroid.init (Context). și ești în regulă.

Acest lucru funcționează pentru mine:

Întrebări recente

Articole similare