T
the_time
Ambitioniertes Mitglied
- 0
Hallo,
ich habe eine JSON file in raw ordner mit folgender Struktur.
ich benutze BroadcasteReiceiver um die stärkse WIFI access point zu erfassen und dann die dazugehörige route_number mit Gson zuzuordnen. Momentan habe ich das problem wenn ich die WLAN aus mache dann wird die zuletzt erfasste route_number an den Server mitgeschickt und nicht 0 oder auch wenn ich die App beende und die WLAN deaktiviere danach die app wieder starten dann hat route_number den wert 4 obwohl sie in diesem fall auch den 0 haben soll. Wie kann ich das errreichen
Schöne Grüße,
the_time
ich habe eine JSON file in raw ordner mit folgender Struktur.
PHP:
{
"wifi": [
{
"ssid": "KD Privat",
"route_number": 1
},
{
"ssid": "KD WLAN Hotspot+",
"route_number": 4
}
]
}
PHP:
public class MainActivity extends ActionBarActivity {
int route_number;
TextView textWifi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textWifi = (TextView) findViewById(R.id.textWifi);
wifi_receiver = new BroadcastReceiverListener();
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
registerReceiver(wifi_receiver, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
wifi.startScan();
}
private class BroadcastReceiverListener extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
final List<ScanResult> results = wifiManager.getScanResults();
if (updatedResults.size() > 0) {
String ssid = deliverBestAccessPoint(updatedResults);
// retrieve data from json String and parse it.
route_number = parse_SSID(ssid);
textWifi.setText(String.valueOf(route_number));
} else {
textWifi.setText("There is no WiFi in range.");
}
}
private int parse_SSID(String ssid) {
int route_number = 0;
InputStream raw = getResources().openRawResource(R.raw.ssid_number);
Reader rd = new BufferedReader(new InputStreamReader(raw));
Gson gson = new Gson();
WiFiJSONList obj = gson.fromJson(rd, WiFiJSONList.class);
List<WifiJSON> wifijson = obj.getWifiList();
Iterator<WifiJSON> iterator = wifijson.iterator();
while (iterator.hasNext()) {
WifiJSON wifielement = (WifiJSON) iterator.next();
String ssid_name = wifielement.getSsid();
if (ssid_name.equals(ssid)) {
route_number = wifielement.getRoute_number();
}
}
return route_number;
}
}
protected void onResume() {
IntentFilter wifi = new IntentFilter();
wifi.addAction(android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
registerReceiver(wifi_receiver, wifi);
super.onResume();
}
@Override
protected void onPause() {
unregisterReceiver(wifi_receiver);
super.onPause();
}
}
the_time