private Location getCurrentLocationGPS() {
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String locationProvider = locationManager.getBestProvider(criteria,
true);
Location location = locationManager
.getLastKnownLocation(locationProvider);
return location;
}
// 根据wifi获取当前位置
private Location getCurrentLocationWifi(Context context) {
Location location=null;
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
try
{
WifiManager wifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled())
{
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
}
catch(Exception e)
{
}
return location;
}
// 根据基站获取当前的位置
private Location getCurrentLocationAGPS() {
Location location = null;
if (telephonyManager.getCellLocation() == null) {
}
GsmCellLocation gcl = (GsmCellLocation) telephonyManager
.getCellLocation();
int cid = gcl.getCid();
int lac = gcl.getLac();
int mcc = Integer.valueOf(telephonyManager.getNetworkOperator()
.substring(0,
3));
int mnc = Integer.valueOf(telephonyManager.getNetworkOperator()
.substring(3,
5));
try {
// 组装JSON查询字符串
JSONObject holder = new JSONObject();
holder.put("version", "1.1.0");
holder.put("host", "maps.google.com");
// holder.put("address_language", "zh_CN");
holder.put("request_address", true);
JSONArray array = new JSONArray();
JSONObject data = new JSONObject();
data.put("cell_id", cid); // 25070
data.put("location_area_code", lac);// 4474
data.put("mobile_country_code", mcc);// 460
data.put("mobile_network_code", mnc);// 0
array.put(data);
holder.put("cell_towers", array);
// 创建连接,发送请求并接受回应
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.google.com/loc/json");
StringEntity se = new StringEntity(holder.toString());
post.setEntity(se);
HttpResponse resp = client.execute(post);
HttpEntity entity = resp.getEntity();
BufferedReader br = new BufferedReader(
new InputStreamReader(entity.getContent()));
StringBuffer resultStr = new StringBuffer();
String readLine = null;
while ((readLine = br.readLine()) != null) {
resultStr.append(readLine);
}
JSONObject jsonResult = new JSONObject(resultStr.toString());
JSONObject jsonLocation = jsonResult.getJSONObject("location");
double jsonLat = jsonLocation.getDouble("latitude");
double jsonLon = jsonLocation.getDouble("longitude");
location = new Location("AGPS");
location.setLatitude(jsonLat);
location.setLongitude(jsonLon);
} catch (Exception e) {
// TODO: handle exception
}
return location;
}
分享到:
分享到:
相关推荐
在Android系统中,GPS(全球定位系统)和WIFI基站定位是两种常见的定位技术,用于获取设备的地理位置信息。这份“androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了一些实现这两种定位方式的源代码,对于学习...
本源码包专注于三种主要的定位技术:GPS(全球定位系统)、WiFi和基站定位。 GPS(全球定位系统)是最常见的定位方式,它通过接收多个卫星信号来计算设备的位置。在Android中,我们可以使用LocationManager类来请求...
本文将详细介绍基于Android的三种定位方式:GPS(全球定位系统)、WiFi网络定位和基站定位,并结合提供的源码资源进行深入解析。 首先,GPS是全球卫星导航系统,用于提供精确的地理位置信息。`Android实现GPS定位....
本源码压缩包“GPS及WIFI基站定位坐标源码.zip”显然提供了实现这两种定位方式的代码示例,主要适用于Android平台。下面将详细探讨这两种定位方法以及可能包含的源码知识点。 1. GPS(全球定位系统)定位: GPS是...
2. **Wi-Fi基站定位**:Wi-Fi定位是通过识别周围的Wi-Fi接入点并匹配已知的Wi-Fi热点数据库来确定位置。这种方法在室内特别有用,因为GPS信号可能较弱或无法接收。开发者可以调用`FusedLocationProviderClient`的`...
1. 基站定位:基站定位依赖于移动通信网络,通过测量设备与多个基站之间的信号强度和时间差,估算设备的位置。在Android中,基站定位主要由`TelephonyManager`类提供,通过调用`getNeighboringCellInfo()`方法获取...
这份"Android应用源码之androidGPS及WIFI基站定位坐标源码.zip"包含了实现这两种定位方式的源代码,对于理解和开发Android定位应用具有重要的参考价值。 1. GPS定位: GPS定位是通过接收来自至少四颗GPS卫星的信号...
【标题】中的“安卓Android源码——androidGPS及WIFI基站定位坐标源码”表明了这是一个关于Android系统中GPS和Wi-Fi基站定位功能的源代码集合。在Android平台上,定位服务是应用程序能够获取用户当前位置的关键组件...
这份“Android高级应用源码-androidGPS及WIFI基站定位坐标源码.zip”压缩包包含了实现这两种定位方式的源代码,对于深入理解和开发Android地理位置相关应用非常有价值。 首先,我们来了解一下GPS定位。GPS是通过...
在MapABCAndroidApiDemos这个项目中,通常会包含一系列关于地图API的示例代码,可能包括使用GPS、WIFI和网络定位功能来显示用户当前位置、路径规划、地理编码(将地址转换为坐标)和反地理编码(将坐标转换为地址)...
在Android平台上,GPS(全球定位系统)和其他辅助定位技术如WiFi和基站定位是实现设备位置服务的关键组件。本文档集合了这些技术的整合方法,帮助开发者实现更精确和高效的定位功能。 首先,我们来深入理解GPS定位...
基站定位则是通过连接到移动网络的基站来确定设备的位置。每个基站都有一个独特的标识符,手机会自动连接到信号最强的基站。根据手机与多个基站的距离和信号强度,可以三角定位设备。 在“JavaApk源码说明.txt”中...
这是一个由百度提供的服务,它为开发者提供了丰富的API接口,用于获取用户的位置信息,包括GPS定位、基站定位以及WiFi定位等。使用该SDK,开发者可以在Android应用中轻松集成定位功能,获取到用户当前的经纬度坐标,...
4. **获取WiFi信息**:Android提供了`WifiManager`类,通过`getScanResults()`方法可以获取到当前范围内的所有WiFi接入点信息,这些信息包括SSID、BSSID(MAC地址)和信号强度等。 5. **基站信息**:基站信息通常由...
可能的值有:“network”(仅基站定位),“gps”(仅 GPS 定位),“network,gps”(基站和 GPS 都开放),“”(关闭定位)。 四、更改 GPS 状态 在 Android 中,更改 GPS 状态可以通过 Settings.System 来实现...
在提供的"GoogleMapDemo"项目中,可能包含了一个示例应用,演示了如何在Android地图上显示基于基站定位的当前位置。这个项目可能使用了Google Maps Android API,通过集成Google Play服务来获取定位信息,并在地图上...
1. **百度GPS定位服务**:百度提供了自家的定位SDK,即Location SDK,它支持多种定位方式,包括GPS、WiFi、基站以及AGPS(Assisted GPS)。Location SDK能够根据设备的环境自动选择最佳的定位方式,从而提高定位速度...
现在有这么一个需求:开启一个Service服务,获取当前...Android手机获取当前位置的方式:GPS定位,WIFI定位,基站定位,当前Demo使用GPS卫星定位,在LocationTool中返回Location、LocationManager两者对象,通过Loca