Ich entwickle eine Anwendung, die eine starke Beziehung mit dem Netzwerk hat. Es muss mit einem starken WLAN-Signal verbunden sein. Ich habe die Erfahrung einmal, als ich eine Anwendung entwickelte, wurde es von den Benutzern abgelehnt, weil es auch eine starke Beziehung mit dem Netzwerk hatte, aber das WiFi-Netzwerk nicht sehr gut funktioniert, so dass die Benutzer die Anwendung beschuldigt und sie es auslassen.Welches ist der beste Weg zum Monitor Wifi Signalstärke auf Android
Jetzt werde ich eine neue Anwendung entwickeln und ich möchte verhindern, dass dies erneut passiert. Zuerst erweitere ich den BroadcastReceiver, damit die App benachrichtigt wird, wenn die Verbindung verloren geht.
public class ConnectivityReceiver extends BroadcastReceiver {
public static ConnectivityReceiverListener connectivityReceiverListener = null;
@Override
public void onReceive(Context context, Intent intent) {
boolean isConnected = AppUtilities.getWifiConnectionStatus(context);
if(connectivityReceiverListener != null){
connectivityReceiverListener.showMessageStatus(isConnected);
}
}
public interface ConnectivityReceiverListener {
void showMessageStatus(boolean status);
}
}
Jetzt muss ich die Wifi-Signalstärke überwachen, um den Benutzer benachrichtigt, wenn das Signal niedrig geht. Ich habe bereits eine Methode, die die Signalstärke misst und eine Ganzzahl von 0 bis 4 zurückgibt, die die Signalstärke von niedrig nach hoch darstellt.
public static int getWifiStrengh(Context context){
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
int numberOfLevels = 5;
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);
return level;
}
nun auf den Punkt, ich will weicht wissen wird der beste Ansatz sein, ständig die Signalstärke zu überwachen.
Ich denke im Einsatz Job Scheduler, um ständig die Signalstärke zu überwachen und ändern die Balkenfarbe (wie ein roter), wenn die Signalstärke weniger als 2 ist, um den Benutzer benachrichtigt. Aber ich würde gerne wissen, ob es einen besseren Ansatz zur Lösung dieses Problems gibt.