我正在创建一个应用程序使用谷歌地图地理定位API将获得用户的位置从网络。Google Maps Geolocation API有一些属性可以在url中发送,以从Google获得正确的输出。我的问题是
>
电池塔对象-年龄参考yu可以在这里查看电池塔对象
WiFi接入点对象-年龄,信道,信号,您可以在这里查看WiFi接入点对象
我尝试了TelePhonyManager和Wifi ScaneResult(),但无法获得这些值
如果有人知道或访问谷歌地图地理定位API,请提出建议,所以我会将这些值传递到谷歌地图API以获得最佳结果
等待回复感谢
您可以使用asynctask
执行网络请求。
示例代码:
private class GetGeolocationTask extends AsyncTask<Object, Void, String> {
@Override
protected String doInBackground(Object... arg0) {
InputStream inputStream = null;
String result = "";
try {
// 1. create HttpClient
HttpClient httpclient = new DefaultHttpClient();
// 2. make POST request to the given URL
HttpPost httpPost = new HttpPost("https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY");
String json = "";
// 3. build jsonObject
JSONObject jsonObject = new JSONObject();
jsonObject.accumulate("homeMobileCountryCode", 310);
jsonObject.accumulate("homeMobileNetworkCode", 410);
jsonObject.accumulate("radioType", "gsm");
jsonObject.accumulate("carrier", "vodafone");
JSONArray cellTowersArray = new JSONArray();
JSONObject cellTowerObject = new JSONObject();
cellTowerObject.accumulate("cellId", 42);
cellTowerObject.accumulate("locationAreaCode", 415);
cellTowerObject.accumulate("mobileCountryCode", 310);
cellTowerObject.accumulate("mobileNetworkCode", 410);
cellTowerObject.accumulate("age", 0);
cellTowerObject.accumulate("signalStrength", -60);
cellTowerObject.accumulate("timingAdvance", 15);
cellTowersArray.put(cellTowerObject);
jsonObject.accumulate("cellTowers", cellTowersArray);
JSONArray wifiAccessPointsArray = new JSONArray();
JSONObject wifiAccessPointObject = new JSONObject();
wifiAccessPointObject.accumulate("macAddress", "01:23:45:67:89:AB");
wifiAccessPointObject.accumulate("age", 0);
wifiAccessPointObject.accumulate("channel", 11);
wifiAccessPointObject.accumulate("signalToNoiseRatio", 40);
wifiAccessPointsArray.put(wifiAccessPointObject);
jsonObject.accumulate("wifiAccessPoints", wifiAccessPointsArray);
// 4. convert JSONObject to JSON to String
json = jsonObject.toString();
// 5. set json to StringEntity
StringEntity se = new StringEntity(json);
// 6. set httpPost Entity
httpPost.setEntity(se);
// 7. Set some headers to inform server about the type of the content
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
// 8. Execute POST request to the given URL
HttpResponse httpResponse = httpclient.execute(httpPost);
// 9. receive response as inputStream
inputStream = httpResponse.getEntity().getContent();
// 10. convert inputstream to string
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "Did not work";
}
catch (MalformedURLException e) {
logException(e);
}
catch (IOException e) {
logException(e);
}
catch (Exception e) {
logException(e);
}
return result;
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(YourActivity.this, result, Toast.LENGTH_LONG).show();
}
}
private static String convertInputStreamToString(InputStream inputStream) throws IOException{
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
String line = "";
String result = "";
while((line = bufferedReader.readLine()) != null)
result += line;
inputStream.close();
return result;
}
您可以在您的activity中调用此AsyncTask,如下所示:
GetGeolocationTask getBlogPostsTask = new GetGeolocationTask();
getGeolocationTask.execute();
您还可以阅读本教程以获得有关如何将JSON放入请求体的详细信息。
或者,您可以使用Google Volley库来做您的网络请求,示例请求可以在这个Stackoverflow答案中找到。
我需要解决这个问题。请帮我指导一下。
本文向大家介绍Python检测网络延迟的代码,包括了Python检测网络延迟的代码的使用技巧和注意事项,需要的朋友参考一下 本文讲述了Python检测网络延迟的代码。分享给大家供大家参考,具体如下: 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对呐喊教程的支持。
本文向大家介绍C# ping网络IP 实现网络状态检测的方法,包括了C# ping网络IP 实现网络状态检测的方法的使用技巧和注意事项,需要的朋友参考一下 C# ping网络IP 实现网络状态检测的方法 以上这篇C# ping网络IP 实现网络状态检测的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍检查Docker网络,包括了检查Docker网络的使用技巧和注意事项,需要的朋友参考一下 示例 此命令将输出有关app-backend网络的详细信息。 此命令的输出的外观应类似于:
如何在Android中检测WIFI连接何时已建立? Android WIFI如何检测特定WIFI连接何时可用 广播接收器不工作(检测wifi是否连接) 还有更多...但可悲的是,我没有找到正确的答案。 我想做的事情是获取用户连接到网络的确切事件,然后得到一个好的方法来检测我是否可以做一个谷歌ping,或者检查是否有连接到互联网(只有WIFI,3G连接是不允许的),因为我现在使用的代码有时会失败..
问题背景: 我们研发的一款 app 需要测不同 bssid 的网速,来提示用户采用最佳速度的网络。 现在的实现方式: 1.前端先切换到对应的 bssid 网络上 2.后端提供了一个函数 speedTest,前端可以传递字节数,然后后端会创建相对应大小的垃圾数据返回给前端,后端 go 代码实现也比较简单。假设前端传递 100MB 的数据给后端。 由于网络情况的特殊性,在网络较差的情况下,前端不可能等