2017-11-16 18 views
0

私はMQTTとAndroid Studioを学んでいます。 私はAndroid Studioで簡単なアプリケーションを作りたいと思っていますが、私は4日間から戦っているので、それに対処できません。MQTT Android StudioとRaspberry PI Broker

アプリケーションの説明: 1 Button ---> Push ---> mqttに送信トピック/メッセージ( "mqtt"/"test") これはすべてです。

Mqtt Broker = rpi (IP: namerpibrok.ddns.net) 

Brokerが正常に動作し、それがパスワードまたはユーザ名

問題を必要としませんがAplicationである - それは、Android Studioでの私の最初の作品です。

が、私はページに記載されているようにすべてのものでした。今、私はボタンを押すとhttps://www.hivemq.com/blog/mqtt-client-library-enyclopedia-paho-android-service

を....何も起こりません。

MqttAndroidClient client; 

    private static final String TAG = "LOG"; 

    // Used to load the 'native-lib' library on application startup. 
static { 
    System.loadLibrary("native-lib"); 
} 

    private Object bytes; 

    @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    String clientId = MqttClient.generateClientId(); 
    client = new MqttAndroidClient(this.getApplicationContext(), "rpidomwroled.ddns.net:1883", clientId); 

     MqttConnectOptions options = new MqttConnectOptions(); 

    try { 
     IMqttToken token = client.connect(options); 
     token.setActionCallback(new IMqttActionListener() { 
      @Override 
      public void onSuccess(IMqttToken asyncActionToken) { 
       // We are connected 
            Toast.makeText(MainActivity.this,"Połączono", Toast.LENGTH_LONG).show(); 

      } 

      @Override 
      public void onFailure(IMqttToken asyncActionToken, Throwable exception) { 
       // Something went wrong e.g. connection timeout or firewall problems 
       Toast.makeText(MainActivity.this,"Połączono", Toast.LENGTH_LONG).show(); 

      } 
     }); 
    } catch (MqttException e) { 
     e.printStackTrace(); 
    } 
} 



    MqttAndroidClient client; 

    private static final String TAG = "LOG"; 

    // Used to load the 'native-lib' library on application startup. 
static { 
    System.loadLibrary("native-lib"); 
} 

    private Object bytes; 

    @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    String clientId = MqttClient.generateClientId(); 
    client = new MqttAndroidClient(this.getApplicationContext(), "rpidomwroled.ddns.net:1883", clientId); 

     MqttConnectOptions options = new MqttConnectOptions(); 

    try { 
     IMqttToken token = client.connect(options); 
     token.setActionCallback(new IMqttActionListener() { 
      @Override 
      public void onSuccess(IMqttToken asyncActionToken) { 
       // We are connected 
            Toast.makeText(MainActivity.this,"Połączono", Toast.LENGTH_LONG).show(); 

      } 

      @Override 
      public void onFailure(IMqttToken asyncActionToken, Throwable exception) { 
       // Something went wrong e.g. connection timeout or firewall problems 
       Toast.makeText(MainActivity.this,"Połączono", Toast.LENGTH_LONG).show(); 

      } 
     }); 
    } catch (MqttException e) { 
     e.printStackTrace(); 
    } 
} 

public void pub(View v) 
 
{ 
 
    String topic = "mqtt"; 
 
    String payload = "mqtt"; 
 
    byte[] encodedPayload = new byte[0]; 
 
    try { 
 
     encodedPayload = payload.getBytes("UTF-8"); 
 
     MqttMessage message = new MqttMessage(encodedPayload); 
 
     client.publish(topic, message); 
 
    } catch (UnsupportedEncodingException | MqttException e) { 
 
     e.printStackTrace(); 
 
    } 
 
    } 
 

 
    }

誰も私が間違ってやっているものを私に伝えることができますか?

+0

で私

String topic = "mqtt"; MqttMessage message = new MqttMessage(); message.setPayload("Message from IoT dev".getBytes()); client.publish(topic, message); 

あなたが背中を呼び出すことができますのために働いて、少し言い換えています。 – abarisone

+0

ログには何が表示されますか? – hardillb

答えて

0

このコードでは、いくつかの誤字を修正しまし

client.setCallback(new IoTCallbacks() { 
       @Override 
       public void connectionLost(Throwable cause) { 

       } 

       @Override 
       public void messageArrived(String topic, MqttMessage message) throws Exception { 

       } 

       @Override 
       public void deliveryComplete(IMqttDeliveryToken token) { 

       } 
      });