一般定位都是通过gps定位器,但这个过程比较慢.这里可以通过基站方式辅助定位
代码:
private TelephonyManager TMmanager;
private void helpGetLocion() throws Exception
{
//获取服务
TMmanager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
GsmCellLocation gcl = (GsmCellLocation) TMmanager.getCellLocation();
//获取位置信息
int cid = gcl.getCid();
int lac = gcl.getLac();
int mcc = Integer.valueOf(TMmanager.getNetworkOperator()
.substring(0, 3));
int mnc = Integer.valueOf(TMmanager.getNetworkOperator()
.substring(3, 5));
// String[] getNumber = "";
// getNumber+={"cid:"+cid+"\n"};
//create json
JSONObject jobject = new JSONObject();
JSONArray jarray = new JSONArray();
JSONObject jData = new JSONObject();
jobject.put("version", "1.1.0");
jobject.put("host", "maps.google.com");
jobject.put("request_address", true);
Log.d("tracy", "mcc=" + mcc);
if (mcc == 460)
{
jobject.put("addess_language", "zh_CN");
}
else
{
jobject.put("addess_language", "en_US");
}
jData.put("cell_id", cid);
jData.put("location_area_code", lac);
jData.put("mobile_country_code", mcc);
jData.put("mobile_network_code", mnc);
jarray.put(jData);
jobject.put("cell_towers", jarray);
//建立连接到服务器
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.google.com/loc/json");
StringEntity se = new StringEntity(jobject.toString());
post.setEntity(se);
HttpResponse resp = client.execute(post);
BufferedReader br = null;
if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
Log.d("tracy", "HttpStatus.SC_OK");
br = new BufferedReader(new InputStreamReader(resp.getEntity()
.getContent()));
}
StringBuffer sb = new StringBuffer();
String result = br.readLine();
while (result != null)
{
sb.append(result);
result = br.readLine();
}
//返回的数据,这个是json格式的数据,如果要解析可以网上搜下json object
mTextView.setText(sb.toString());
}
分享到:
相关推荐
四、Android系统的辅助定位技术 为了提高定位精度和速度,Android系统还引入了A-GPS(Assisted GPS)技术。A-GPS结合了GPS卫星信号和基站信息,利用互联网辅助数据进行快速定位初始化,从而在GPS信号弱的情况下也能...
通过理解并运用这些知识点,开发者可以在Android应用程序中实现3G基站定位功能,为用户提供位置服务,例如导航、周边服务查找等。这个完整的源码实例是一个很好的学习和参考资源,可以帮助开发者快速掌握基站定位...
5. **性能优化**:由于基站定位的精度受信号质量和基站密度影响,源代码可能还包括一些优化措施,比如使用移动网络数据(如网络类型、速度)来辅助定位,或者采用滤波算法(如卡尔曼滤波)来平滑定位结果,减少定位...
4. **网络辅助定位**: 除了纯基站数据,Android还会利用网络辅助定位服务(AGPS),通过网络获取辅助信息,如基站的精确位置,提高定位速度和精度。 5. **权限管理**: 在Android应用中使用基站定位,需要在Manifest...
在Android系统中,基站定位是一种常见的移动设备定位技术,它基于手机接收到的周围基站的信号强度来...通过对源码的深入研究,开发者可以更好地理解Android定位系统的运作,并根据实际需求定制更高效的定位解决方案。
Android WiFi LBS(Location-Based Services,基于位置的服务)定位是通过结合WiFi网络信号和移动通信基站信息来确定设备的位置。这种定位方式在GPS信号不可用或者信号弱的室内环境尤为实用。下面将详细介绍Android ...
在Android系统中,基站定位是一种基于移动通信网络的定位技术,它通过获取手机与周围基站之间的信号强度和角度来估算设备的位置。基站定位是移动设备定位的重要方式之一,尤其在GPS信号弱或者不可用的情况下,如室内...
- 源码分析可以帮助理解Android定位服务的工作流程,包括请求定位、解析位置信息、更新UI等关键步骤。 4. **学习资源**: - `1.pptx`可能是一个关于Android定位技术的讲座或教程,涵盖了相关理论和实践操作。 - ...
AGPS(Assisted GPS,辅助 GPS)方式是通过使用基站信息对获取 GPS 进行辅助,然后还能对获取到的 GPS 结果进行修正。AGPS 要比传统的 GPS 更快,准确度略高。 五、Android 定位接口 Android 提供的定位接口允许...
除了这些基础的定位方式,Android还支持其他定位技术,如网络定位(通过移动数据或WiFi的基站信息),AGPS(辅助GPS)等。在实际开发中,为了提高定位效率和准确性,通常会结合多种定位方式进行混合定位。例如,当...
通过研究这个源码项目,开发者可以深入理解Android定位系统的运作机制,以及如何在实际应用中实现高效、准确的定位功能。同时,还可以学习到如何处理位置更新事件、管理定位权限和优化定位性能。
首先,Android定位主要依赖于两种技术:GPS(全球定位系统)和网络定位。GPS是通过接收多个卫星信号来确定设备的精确地理位置。Android系统提供了LocationManager服务,允许开发者请求不同的定位提供者,如GPS或网络...
这时,Wi-Fi和移动网络基站的信号可以辅助定位,提供室内或城市环境下的粗略位置信息。 Android中的LocationManager类是处理定位的核心组件,它允许开发者注册监听器以接收位置更新。LocationListener接口是用于...
基站定位是一种移动设备定位技术,尤其在GPS信号不强或者无法获取的情况下...通过理解基站定位的基本原理,结合提供的“帮助类.java”和“线程类.txt”,开发者可以构建自己的定位服务,为用户提供更好的位置相关功能。
定位主要基于GPS(全球定位系统)、Wi-Fi信号、移动网络基站等数据源,通过三角定位或辅助GPS等方式确定设备位置。在Android中,通常使用`LocationManager`与`LocationProvider`接口进行定位操作。 ### 2. 混合定位...
在没有GPS信号的情况下,系统会使用网络定位,如Wi-Fi和移动网络基站信息进行辅助定位。 在这个项目中,开发者采用了百度地图SDK,它为Android开发者提供了丰富的地图功能和定位服务。百度地图SDK包含定位SDK和地图...
总的来说,Android设备上的cell ID算法是一种利用移动通信网络辅助定位的技术,它在GPS无法工作或定位精度要求不高的情况下提供了定位解决方案。尽管存在一些限制,但随着技术的发展,基站定位的精度和实用性正在...