New to MQTT protocol. My code is working fine on eclipse platform. Now, trying to write publisher mqtt client for android and subscriber is running on eclipse. App is getting closed after launch. Please help me in the following code.
public class MainActivity extends AppCompatActivity
{
String text="HELOOO";
TextView textReply;
private MqttClient client;
public static final String TOPIC = "data";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
client = new MqttClient("http://IP-address:1883", MqttClient.generateClientId());
} catch (MqttException e) {
e.printStackTrace();
System.exit(1);
}
try {
client.connect();
MqttMessage mssg=new MqttMessage();
mssg.setPayload(text.getBytes());
client.disconnect();
} catch (MqttException e) {
e.printStackTrace();
System.exit(1);
}
}
}
Changes made after @arjun suggestions
public class MainActivity extends AppCompatActivity {
String text="HELOOO";
TextView textReply;
private MqttClient client;
public static final String TOPIC = "iot_data";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Publisher myClientTask = new Publisher();
myClientTask.execute();
}
}
class Publisher extends AsyncTask<Void, Void, Void>{
String text="helloo";
@Override
protected Void doInBackground(Void... voids) {
try {
MqttClient client = new MqttClient("tcp://Ip:1883", MqttClient.generateClientId());
client.connect();
MqttMessage mssg=new MqttMessage();
mssg.setPayload(text.getBytes());
client.publish("iot_data",mssg);
client.disconnect();
}catch(Exception e)
{
}
return null;
}
}