Note that there are some explanatory texts on larger screens.

plurals
  1. POExample Android XMPP from code.samsung.com gives KeyStoreException and NoSuchAlgorithmException on connect
    primarykey
    data
    text
    <p>I am pretty new to <code>XMPP</code> and <code>Connection</code> stuff. I have downloaded a dummy code from <a href="http://developer.samsung.com/android/technical-docs/Building-a-Chat-Application" rel="nofollow">code.samsung.com</a> and trying to run that code. But it is giving exception in <code>LogCat</code> that <code>java.security.KeystoreException</code> and <code>java.security.nosuchalgorithmexception</code> and <code>can't connect to mitesh@gmail.com</code></p> <p>My code is,</p> <pre><code>package com.demo.xmppchat; import java.util.ArrayList; import java.util.Collection; import org.jivesoftware.smack.ConnectionConfiguration; import org.jivesoftware.smack.PacketListener; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.RosterEntry; import org.jivesoftware.smack.SASLAuthentication; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.MessageTypeFilter; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Packet; import org.jivesoftware.smack.packet.Presence; import org.jivesoftware.smack.util.StringUtils; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; public class XMPPChatDemoActivity extends Activity { public static final String HOST = "talk.google.com"; public static final int PORT = 5222; public static final String SERVICE = "gmail.com"; public static final String USERNAME = "mitesh@gmail.com"; public static final String PASSWORD = "******"; private XMPPConnection connection; private ArrayList&lt;String&gt; messages = new ArrayList&lt;String&gt;(); private Handler mHandler = new Handler(); private EditText recipient; private EditText textMessage; private ListView listview; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); recipient = (EditText) this.findViewById(R.id.toET); textMessage = (EditText) this.findViewById(R.id.chatET); listview = (ListView) this.findViewById(R.id.listMessages); setListAdapter(); // Set a listener to send a chat text message Button send = (Button) this.findViewById(R.id.sendBtn); send.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { String to = recipient.getText().toString(); String text = textMessage.getText().toString(); Log.i("XMPPChatDemoActivity", "Sending text " + text + " to " + to); Message msg = new Message(to, Message.Type.chat); msg.setBody(text); if (connection != null) { connection.sendPacket(msg); messages.add(connection.getUser() + ":"); messages.add(text); setListAdapter(); } } }); connect(); } /** * Called by Settings dialog when a connection is establised with the XMPP * server * * @param connection */ public void setConnection(XMPPConnection connection) { this.connection = connection; if (connection != null) { // Add a packet listener to get messages sent to us PacketFilter filter = new MessageTypeFilter(Message.Type.chat); connection.addPacketListener(new PacketListener() { @Override public void processPacket(Packet packet) { Message message = (Message) packet; if (message.getBody() != null) { String fromName = StringUtils.parseBareAddress(message .getFrom()); Log.i("XMPPChatDemoActivity", "Text Recieved " + message.getBody() + " from " + fromName ); messages.add(fromName + ":"); messages.add(message.getBody()); // Add the incoming message to the list view mHandler.post(new Runnable() { public void run() { setListAdapter(); } }); } } }, filter); } } private void setListAdapter() { ArrayAdapter&lt;String&gt; adapter = new ArrayAdapter&lt;String&gt;(this, R.layout.listitem, messages); listview.setAdapter(adapter); } @Override protected void onDestroy() { super.onDestroy(); try { if (connection != null) connection.disconnect(); } catch (Exception e) { } } public void connect() { final ProgressDialog dialog = ProgressDialog.show(this, "Connecting...", "Please wait...", false); Thread t = new Thread(new Runnable() { @Override public void run() { // Create a connection ConnectionConfiguration connConfig = new ConnectionConfiguration( HOST, PORT, SERVICE); XMPPConnection connection = new XMPPConnection(connConfig); try { connection.connect(); Log.i("XMPPChatDemoActivity", "Connected to " + connection.getHost()); } catch (XMPPException ex) { Log.e("XMPPChatDemoActivity", "Failed to connect to " + connection.getHost()); Log.e("XMPPChatDemoActivity", ex.toString()); setConnection(null); } try { // SASLAuthentication.supportSASLMechanism("PLAIN", 0); connection.login(USERNAME, PASSWORD); Log.i("XMPPChatDemoActivity", "Logged in as " + connection.getUser()); // Set the status to available Presence presence = new Presence(Presence.Type.available); connection.sendPacket(presence); setConnection(connection); Roster roster = connection.getRoster(); Collection&lt;RosterEntry&gt; entries = roster.getEntries(); for (RosterEntry entry : entries) { Log.d("XMPPChatDemoActivity", "--------------------------------------"); Log.d("XMPPChatDemoActivity", "RosterEntry " + entry); Log.d("XMPPChatDemoActivity", "User: " + entry.getUser()); Log.d("XMPPChatDemoActivity", "Name: " + entry.getName()); Log.d("XMPPChatDemoActivity", "Status: " + entry.getStatus()); Log.d("XMPPChatDemoActivity", "Type: " + entry.getType()); Presence entryPresence = roster.getPresence(entry .getUser()); Log.d("XMPPChatDemoActivity", "Presence Status: " + entryPresence.getStatus()); Log.d("XMPPChatDemoActivity", "Presence Type: " + entryPresence.getType()); Presence.Type type = entryPresence.getType(); if (type == Presence.Type.available) Log.d("XMPPChatDemoActivity", "Presence AVIALABLE"); Log.d("XMPPChatDemoActivity", "Presence : " + entryPresence); } } catch (XMPPException ex) { Log.e("XMPPChatDemoActivity", "Failed to log in as " + USERNAME); Log.e("XMPPChatDemoActivity", ex.toString()); setConnection(null); } dialog.dismiss(); } }); t.start(); dialog.show(); } } </code></pre> <p>Whats wrong with the code? Please Help..!!</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload