Я использовал API местоположения Google Gears, чтобы найти MAC-адреса идентификатора ячейки и Wi-Fi (получить широту/долготу). Но не с помощью браузера, с помощью java-кода. Я использовал этот URI: http://www.google.com/loc/json.
Теперь этот API больше не доступен!! --> https://developers.google.com/gears/
Я понимаю, что заменой является HTML5, но мое приложение не запускается в браузере... Знаете ли вы, как я могу использовать API HTML5 без браузера (просто HTTP-запрос) или альтернативу?
Вот мой старый код для информации:
...
JSONObject root = new JSONObject();
root.put("version", "1.1.0");
root.put("host", "maps.google.com");
JSONArray cell_towers = new JSONArray();
JSONObject cell_tower = new JSONObject();
cell_tower.put("cell_id", 10104);
cell_tower.put("location_area_code", 101);
cell_tower.put("mobile_country_code", 228);
cell_tower.put("mobile_network_code", 1);
cell_tower.put("request_address", true);
cell_tower.put("address_language", "en_GB");
cell_tower.put("age", new Integer(0));
cell_towers.put(cell_tower);
root.put("cell_towers", cell_towers);
String result = postHttp("http://www.google.com/loc/json", root);
}
...
private static String postHttp(String urlToUse, JSONObject data) throws Exception {
StringBuilder respBuilder = new StringBuilder();
if (urlToUse.length() == 0) {
return null;
}
URL url;
try {
url = new URL(urlToUse);
} catch (MalformedURLException ex) {
return null;
}
URLConnection urlCon;
try {
urlCon = url.openConnection();
urlCon.setDoOutput(true);
OutputStream wr = urlCon.getOutputStream();
if (data != null) {
String dd = data.toString();
wr.write(dd.getBytes());
}
wr.flush();
int len = urlCon.getContentLength();
if (len != 0) {
BufferedReader reader = new BufferedReader(new InputStreamReader(urlCon.getInputStream(), "UTF-8"));
String line="";
while ((line = reader.readLine()) != null) {
respBuilder.append(line + "\n");
}
return respBuilder.toString().trim();
} else {
return null;
}
} catch (IOException ex) {
return null;
}
}