我使用 google gears location API 来定位 cell-id 和 wifi mac 地址(获取纬度/经度)。但不使用浏览器,使用java代码。我使用了这个 URI:http ://www.google.com/loc/json
现在,这个 API 不再可用了!!--> https://developers.google.com/gears/
我知道替代品是 HTML5,但我的应用程序不能在浏览器上运行......你知道我如何在没有浏览器的情况下使用 HTML5 API(简单的 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;
}
}