Ich versuche Eclipse Paho-Bibliothek für die Android-App für mein IoT-Projekt zu verwenden. Die Android-App sendet einfach Gyroskop- und Beschleunigungsdaten an den Broker unter iot.eclipse.org. Ich verwende den folgenden Code, um eine Verbindung mit dem MQTT-Server herzustellen. `public void establishMQTTConnection() {Fehler beim Empfang der Broadcast-Absicht. Eclipse Paho
clientId = MqttClient.generateClientId();
Log.d(TAG,clientId+"");
client =
new MqttAndroidClient(this.getApplicationContext(), "iot.eclipse.org:1883",
clientId);
// MqttConnectOptions options = new MqttConnectOptions();
//options.setUserName("aiupvrxz");
//options.setPassword("dOW0vFQzRGKA".toCharArray());
try {
token = client.connect();
token.setActionCallback(new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
// We are connected
Log.d(TAG, "onSuccess");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
// Something went wrong e.g. connection timeout or firewall problems
Log.d(TAG, "onFailure");
}
});
} catch (MqttException e) {
e.printStackTrace();
}
}`
Problem ist app nie die Verbindung herstellt. Ich bekomme den folgenden Fehler in der Logcat.
05-24 12:48:20.772 10236-10236/iot.dulanga.com.androidclientv2 E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Error receiving broadcast Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x10000010 (has extras) } in org.eclipse.p[email protected]41fc9348
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:737)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4573)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
android.permission.WAKE_LOCK
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.SecurityException: Neither user 10121 nor current process has android.permission.WAKE_LOCK.
at android.os.Parcel.readException(Parcel.java:1327)
at android.os.Parcel.readException(Parcel.java:1281)
at android.os.IPowerManager$Stub$Proxy.acquireWakeLock(IPowerManager.java:432)
at android.os.PowerManager$WakeLock.acquireLocked(PowerManager.java:295)
at android.os.PowerManager$WakeLock.acquire(PowerManager.java:264)
at org.eclipse.paho.android.service.MqttService$NetworkConnectionIntentReceiver.onReceive(MqttService.java:794)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4573)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
AndroidManifest ....
`
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<service android:name="org.eclipse.paho.android.service.MqttService" >
</service>
</application>
`
Kann jemand mir bitte helfen, das Problem mit meinem Code, um herauszufinden. Vielen Dank!!!!
Sir, vielen Dank viel für Ihre Antwort hinzugefügt haben. Ich habe diese Berechtigung bereits im Manifest hinzugefügt. Trotzdem bekomme ich den gleichen Fehler. – Dulanga
Wenn Sie das an der richtigen Stelle hinzugefügt haben, dann sollte sich die Ausnahme geändert haben – hardillb
Nein, Sir, ich bekomme immer noch die gleiche Ausnahme. Ich habe die Frage bearbeitet. Ich habe das Manifest auch aufgenommen. Es wird sehr geschätzt, wenn Sie mir dabei helfen können. Vielen Dank – Dulanga