Ich weiß nicht, was ich falsch mache. Ich habe den BroadcastReceiver registriert. Ich bekomme on Receive in regelmäßigen Abständen, aber ich habe 0 Scan-Ergebnisse vom WifiManager.Keine Scan-Ergebnisse erhalten
Da ich WIFI-Status in das Protokoll drucken, erhält es immer WIFI_STATE_UNKNOWN. Wenn ich die Ergebnisse in den WLAN-Einstellungen überprüfe, habe ich dort viele Scan-Ergebnisse. Ich bin sogar mit einem verbunden.
Empfänger:
public class NetworkManager extends BroadcastReceiver {
private final static String TAG = NetworkManager.class.getSimpleName();
private WifiManager access;
private static NetworkManager manager;
private List<WifiScanCallback> callbackList;
public static NetworkManager getManager(Context context) {
if (manager == null) {
manager = new NetworkManager();
manager.init(context);
}
return manager;
}
public void init(Context context){
access = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
callbackList = new ArrayList<>();
}
public NetworkManager() {
manager = this;
}
@Override
public void onReceive(Context context, Intent intent) {
int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
Log.d(TAG, "onReceive: "+intent);
debugWifiState(wifiState);
if(!isAccessNull()){
List<ScanResult> result = access.getScanResults();
if(callbackList != null && result != null && result.size() > 0 && callbackList.size() > 0){
for(ScanResult currResult : result){
Log.d(TAG, "onReceive: "+currResult.SSID);
for(WifiScanCallback callback : callbackList){
String ssid = currResult.SSID;
callback.onResult(ssid, null);
}
}
}
}
scan(true);
}
}
MainAcivity
@Override
protected void onResume() {
super.onResume();
networkManager = NetworkManager.getManager(this);
IntentFilter filter = new IntentFilter();
filter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(networkManager, filter);
networkManager.scan(true);
}
manifest
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>