android中手机定位
来源:互联网 发布:秦义绝捏脸数据 编辑:程序博客网 时间:2024/04/29 21:22
先说说生活中主要用的定位方式
1.网络定位:根据ip地址定位
ip地址和实际地址形成一个数据库(纯真ip数据库),可以根据ip在数据库中查出具体地址,警方使用此方法破案
缺点:ip地址动态分配会导致不准确
2.基站定位
三个基站,能确定一点,所以在城市较好定位
范围:几百米到几公里不等,范围比较广
3.GPS定位,美国的卫星定位
至少需要三颗卫星
GPS使用24颗卫星,基本可以覆盖全球90%地区
范围:几米-几十米
缺点:容易受云层,建筑,等干扰
4.A-GPS 辅助GPS定位系统,通过网络和GPS共同定位,一般Android手机都采用此种定位方式
程序:建包service
创建LocationService.class文件
public class LocationService extends Service { private LocationManager lm; private MyLocationListener listener; private SharedPreferences mPref; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); mPref = getSharedPreferences("config", MODE_PRIVATE); lm = (LocationManager) getSystemService(LOCATION_SERVICE); List<String> allProviders = lm.getAllProviders();// 获取所有位置提供者 // System.out.println(allProviders);//有两个位置提供者passive和GPS Criteria criteria = new Criteria(); criteria.setCostAllowed(true);// 是否允许付费,比如使用3g网络定位 criteria.setAccuracy(Criteria.ACCURACY_FINE); // 获取最佳位置提供者 String bestProvider = lm.getBestProvider(criteria, true); listener = new MyLocationListener(); // 参数1表示位置提供者,2表示最短更新时间,3表示最短更新距离 lm.requestLocationUpdates(bestProvider, 0, 0, listener); } class MyLocationListener implements LocationListener { // 位置发生变化 public void onLocationChanged(Location location) { System.out.println("get location!!!"); double longitude = location.getLongitude();// 经度 double latitude = location.getLatitude();// 纬度 //将获取的location保存在mpref中 mPref.edit() .putString("location", "j:" + longitude + "; w:" + latitude) .commit(); stopSelf(); } // 位置提供者状态发生变化 public void onStatusChanged(String provider, int status, Bundle extras) { } // 位置打开GPS public void onProviderEnabled(String provider) { } // 用户关闭GPS @Override public void onProviderDisabled(String provider) { } } @Override public void onDestroy() { super.onDestroy(); // 当activity销毁的时,停止更新位置,节省电量 lm.removeUpdates(listener); }}
最后记得添加相应的权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
0 0
- android中手机定位
- android手机定位
- android手机定位
- android手机定位
- android手机定位
- android 手机 GPS定位
- android手机定位
- android手机定位
- android手机定位
- Android手机定位
- android手机定位
- Android 手机定位
- eclipse开发android手机定位
- Android手机定位应用小解
- Android手机定位完整代码
- android手机定位慢解决办法
- android手机定位显示信息
- android 定位有些手机异常
- android 自定义ListView显示微信聊天好友列表
- C语言程序练习
- 无插件Vim编程技巧
- [hdoj试题]Box of Bricks
- Git 提高命令的可读性
- android中手机定位
- 糯米团—重制“iPhone团购信息客户端”(一)
- Python基础-元组小结
- Abaqus 帮助文档
- java设计模式(六)--适配器模式
- 深入浅出JMS(二)--ActiveMQ简单介绍以及安装
- 顺序表的查找
- First Bad Version
- Java异常处理的学习