2016-10-03 3 views
1

Ich versuche, den WLAN-Zustand durch usin Broadcast-Empfänger abzufangen. Hier ist mein Stück Code:Broadcast-Empfänger funktioniert nicht für WLAN-Status

manifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.google.android.gms.samples.vision.wifivision" 
    android:installLocation="auto" > 

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 
    <uses-permission android:name="android.permisssion.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-feature android:name="android.hardware.camera" /> 
    <uses-permission android:name="android.permission.FLASHLIGHT"/> 

    <application 
     android:allowBackup="true" 
     android:fullBackupContent="false" 
     android:hardwareAccelerated="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="Wifi Vision" 
     android:supportsRtl = "true" 
     android:theme="@style/Theme.AppCompat" > 
     <receiver android:name=".receiver.WifiReceiver" > 
      <intent-filter> 
       <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> 
      </intent-filter> 
     </receiver> 
     <!-- activity --> 
    </application> 
</manifest> 

Und hier die Klasse:

public class WifiReceiver extends BroadcastReceiver { 
    private final String TAG = "WifiReceiver"; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
       int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN); 
     String wifiStateText = "No State"; 

     switch (wifiState) { 
      case WifiManager.WIFI_STATE_DISABLING: 
       wifiStateText = "WIFI_STATE_DISABLING"; 
       break; 
      case WifiManager.WIFI_STATE_DISABLED: 
       wifiStateText = "WIFI_STATE_DISABLED"; 
       break; 
      case WifiManager.WIFI_STATE_ENABLING: 
       wifiStateText = "WIFI_STATE_ENABLING"; 
       break; 
      case WifiManager.WIFI_STATE_ENABLED: 
       wifiStateText = "WIFI_STATE_ENABLED"; 
       break; 
      case WifiManager.WIFI_STATE_UNKNOWN: 
       wifiStateText = "WIFI_STATE_UNKNOWN"; 
       break; 
      default: 
       break; 
     } 
    } 
} 

Ich habe nie in die 'OnReceive' -Funktion. Hast du eine Idee, warum es nicht funktioniert?

Antwort

4

Fügen Sie diese in Intent-Filter auch

action android:name="android.net.conn.CONNECTIVITY_CHANGE" 
+0

groß Oh. Es klappt ! Danke vielmals! –

Verwandte Themen