初めてアプリを開くときに、ブローカー情報を入力して試してみることができる画面が必要です。Paho MqttClientを使用してAndroidでMqtt接続を試す
試してみると、情報が正常に接続されたかどうかを示すSnackbar
が表示されます。
これは私が呼び出すコードのtryボタンが押されたときである。
private void tryConnection(View v){
if(verifyInputs()){
Snackbar.make(v, getString(R.string.trying_connection), Snackbar.LENGTH_LONG).show();
String clientId = MqttClient.generateClientId();
MqttAndroidClient client =
new MqttAndroidClient(this.getApplicationContext(), getServerAddress(),
clientId);
try {
IMqttToken token = client.connect();
final View vinner = v;
token.setActionCallback(new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
// We are connected
Snackbar.make(vinner, "Success", Snackbar.LENGTH_LONG).show();
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
// Something went wrong e.g. connection timeout or firewall problems
Snackbar.make(vinner, "Fail", Snackbar.LENGTH_LONG).show();
}
});
} catch (MqttException e) {
e.printStackTrace();
}
}
}
問題があり、onFailure
は、それがサーバーに接続できないときに呼び出されるように見えるが、それに接続しません。サーバーが失われました。
接続をテストして保存することができます。メインアクティビティに戻ることができますか?
こんにちは!あなたのサービスを使用して、または少なくともしようとしています。どうすれば私が購読することができますか教えていただけますか?私は完全に紛失しており、これは数時間続いています –
@ネルソンシルヴァーにはMQTTのための 'onSuccess'コールバックがあります。ブローカへの接続が成功すると、そのメソッドが呼び出されます。だからあなたがしなければならないことは、そこで 'subscribe'メソッドを呼び出して、あなたがパラメータとして購読している' topic'を渡すことだけです。エラーや特定の問題が発生していますか? –
実際、私はどこから始めるべきか分からないほど多くのことを試みました。私はYouTubeでビデオを見ていて、 "ServiceConnection"を使ってサービスをバインドしていましたが、私はどこにも行きません。私が購読しようとすると、ヌルオブジェクトリファレンスで> org.eclipse.paho.android.service.MqttAndroidClient.subscribe(java.lang.String、int) 'を取得します。また、購読するにはIMqttTokenが必要ですか?私は失われた、申し訳ありません...私はサービス内からメソッドを呼び出すための適切な方法を理解していません –