码迷,mamicode.com
首页 > 移动开发 > 详细

手机定位的方式

时间:2015-01-22 23:14:57      阅读:406      评论:0      收藏:0      [点我收藏+]

标签:

GPS:三角定位、定位精确、最小精度大概在15米左右、缺点——定位速度慢、开机时间长
基站:使用三角定位法、定位快、定位精度低30米到2公里
网络:使用ip来定位;定位速度快,精确;
AGAP:网络辅助定位系统;现在手机上用这种方式定位;

在清单文件中添加权限:
  1. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 注:最佳定位方式通过GPS、
  2. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>注:网络定位
  3. <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>注:车载系统定位
权限注解:
Allows an app to access precise location from location sources such as GPS, cell towers, and Wi-Fi. (android.permission.ACCESS_FINE_LOCATION)
Allows an app to access approximate location derived from network location sources such as cell towers and Wi-Fi(android.permission.ACCESS_COARSE_LOCATION)
Allows an application to create mock location providers for testing(android.permission.ACCESS_MOCK_LOCATION)


定位api:
1、通过系统服务得到LocationManager对象
  1. LocationManager lm=(LocationManager)getSysyrmService
2、通过调用requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)来实现定位
  1. lm.requestLocationUpdates("gps",0,0,new MyLocationLiseter());
参数注释:
            provider :获得地理位置信息方式:GPS\基站\网络
            minTime:至少多长时间重新获得信息
            minDistance:至少移动多长距离重新获得信息
            listener:位置变化的监听器

自定义LocationListener     并将具体的定位信息序列化到本地
  1. private class MyLocationLiseter implements LocationListener{
  2. /**
  3. * 位置发生变化调用这个方法
  4. */
  5. @Override
  6. public void onLocationChanged(Location location) {
  7. // 维度
  8. double w = location.getLatitude();
  9. // 经度
  10. double j = location.getLongitude();
  11. // 精确度
  12. double a = location.getAccuracy();
  13. String l = w+","+j+ "," +a;
  14. System.out.println("=================="+l);
  15. SharedPreferences sp = getSharedPreferences("config", Context.MODE_PRIVATE);
  16. Editor editor = sp.edit();
  17. editor.putString("location", l);
  18. editor.commit();
  19. }
  20. /**
  21. * 某一种定位方式的状态发生变化调用这个方法
  22. * 打开--关闭
  23. * 关闭--打开
  24. */
  25. @Override
  26. public void onStatusChanged(String provider, int status, Bundle extras) {
  27. }
  28. /**
  29. * 某一种定位方式的可用时发生变化时调用这个方法
  30. * 不可用--可用
  31. */
  32. @Override
  33. public void onProviderEnabled(String provider) {
  34. // TODO Auto-generated method stub
  35. }
  36. /**
  37. * 某一种定位方式的不可用时发生变化时调用这个方法
  38. * 可用--不可用
  39. */
  40. @Override
  41. public void onProviderDisabled(String provider) {
  42. // TODO Auto-generated method stub
  43. }
  44. }







手机定位的方式

标签:

原文地址:http://www.cnblogs.com/candledragle/p/4242789.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!