Nicht in der Lage zu hören, um android-wi-fi-manager-ist-Zustand?
Ich habe ein paar Probleme mit der BroadCast-Empfänger für die überprüfung des WLAN-Status. Könnten Sie bitte helfen?
Dies ist mein manifest-Datei.
<uses-permission android:name="android.permission.READ_PHONE_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"> </uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"> </uses-permission>
<uses-permission android:name="android.permission.INTERNET"> </uses-permission>
<application
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".MainActivity">
<intent-filter android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
</receiver>
</application>
</manifest>
- Und dies ist die MainActivity.java
public class MainActivity extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, -1);
String msg = null;
switch (state) {
case WifiManager.WIFI_STATE_DISABLED:
msg = "it is disabled";
break;
case WifiManager.WIFI_STATE_ENABLED:
msg = "it is enabled";
break;
case WifiManager.WIFI_STATE_DISABLING:
msg = "it is switching off";
break;
case WifiManager.WIFI_STATE_ENABLING:
msg = "wifi is getting enabled";
break;
default:
msg = "not working properly";
break;
}
if (msg != null) {
Log.d("************%%%%%%%%wifi state ", "WIFI" + msg);
Toast.makeText(context, "Wifi state is" + msg, Toast.LENGTH_LONG)
.show();
}
}
}
Ich bin unsicher, wo ich so meine Fehler. Jeder Eingang würde sehr geschätzt werden.
Ich bin nicht immer alle Fehler nur, dass die log-Datei nicht anzeigen die gewünschte Nachricht ein.
InformationsquelleAutor Vinoth | 2011-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie haben nicht Hinzugefügt, die Parameter für die intent-filter, der Letzte manifestieren sollte wie folgt Aussehen
Hoffe, das hilft.
InformationsquelleAutor
Wenn Sie nicht fügen Sie die folgenden Berechtigungen verfügen, dann versuchen Sie es erneut, nachdem das hinzufügen dieser.
InformationsquelleAutor jainal
Zunächst sollten Sie sicherstellen, dass Ihr Antrag die Erlaubnis zu bekommen, Zugriff auf anzeigen, WLAN-Status. Einfach tun, als Anup Rojekar sagte.
Zweite, ich glaube, Sie machen Fehler bei der Verwendung eines BroadcastReceiver. In Ihrem manifest.xml erklären Sie die MainActivity.
also die MainActivy ist eine Aktivität. Auch erklären Sie die MainActivity als broadcastReceiver. Das ist illegal. Verwenden Sie ein standalone-broadcast zu tun. Wie diese:
Bitte beachten Sie, dass ich änderte den Namen für die broadcastReceiver und innerhalb der Knoten, sollten Sie einen
<action>
Knoten wie oben.Dritte, erstellen Sie eine WifiBroadcastReceiver.java und kopieren Sie die codes von der original-MainActivity.java . Denken Sie daran, ändern Sie die class-Deklaration
public class WifiBroadcastReceiver extends BroadcastReceiver
Hoffe ich konnte helfen. Bitte sagen Sie mir, ob es funktioniert. Ich habe keinen pc zur hand; so I don'
t-test die codes entweder.
Auch, Sie brauchen eine neue MainActivity.java Datei. Es könnte sein, automatisch generiert von Eclipse. Diese Klasse soll erklärt werden, wie:
public class MainActivity extends Activity
.InformationsquelleAutor Huang
Hinzufügen diese Berechtigung auch in Ordnung, überprüfen Sie den Netzwerkstatus des Geräts an.
InformationsquelleAutor Anup Rojekar
einen mix-and-match von verschiedenen bisherigen Antworten, diese snippets arbeitete für mich zu überprüfen, WENN ich mit EINEM WLAN VERBUNDEN (dies nicht, sagen Sie mir, wenn ich mit dem internet verbunden):
erstellen WifiMonitor.java Klasse
nun gehen, um Ihre Manifest-Datei, und schließen Sie
und schließlich, platzieren Sie den Empfänger direkt vor die < /application > - tag (noch in der Manifest-Datei)
wenn die Anwendung Ihr code NICHT KOPIEREN < - Anwendung... oder < /application > - tags in den code oben (ich habe nur Sie es so, dass Sie wissen, wo die Empfänger).
HINWEIS: bitte korrigieren Sie Ihre MainActivity zu verlängern Aktivität und nicht BroadcastReceiver.
InformationsquelleAutor tony gil
Für mich die änderungen in der AndroidManifiest.xml hat nicht funktioniert. Ich habe das gleiche problem, die Anwendung blieb plötzlich stehen.
Benutzte ich die registerReceiver in der Haupttätigkeit und es funktioniert:) Für mich die WifiStateTester ist die Klasse, die Sie erweitert die von BroadcastReceiver.
Verschiedene andere Sache, die ich habe, ist, dass in der onReceiver Methode, die ich direkt überprüft, den wifi-status.
InformationsquelleAutor M. Antonia