Android获取用户位置
来源:互联网 发布:罗氏诊断待遇 知乎 编辑:程序博客网 时间:2024/04/29 07:19
在很多生活类工具应用中都会包含用户位置信息,这样更方便的为用户服务。 经常我们使用三种方式进行定位,获取用户位置,分别是基于基站定位, 网络定位,GPS定位。
一:基站定位(passive):这是基于网络基站进行定位的,定位的精确度在几十米到几千米不等,在城市中基站覆盖率比较高,推荐使用基站定位,如果是在郊区,基站相距较远,基站的覆盖没有城里好,定位的误差比较大。如果在郊区不推荐使用基站定位。
二:网络定位:wifi定位,网络定位
运营商下放IP地址。比如彩虹QQ。
google纵横(统计一个非常大的IP和地址映射关系)
动态IP(IP池中随机获取一个IP地址,每次联网都会去池中获取一个随机的IP ,得到的是一个大体的地址),比如新浪微博。天气定位
google纵横(统计一个非常大的IP和地址映射关系)
动态IP(IP池中随机获取一个IP地址,每次联网都会去池中获取一个随机的IP ,得到的是一个大体的地址),比如新浪微博。天气定位
方式三:GPS定位
与卫星进行通信。
手机中嵌入了GPS模块(精简版的A-GPS),通过A-GPS搜索卫星, 获取经纬度。
使用GPS的弊端是:必须站在空旷的地方,头顶对着天空,如果云层厚了,也会受到一定的影响。
精确度:10-50米
与卫星进行通信。
手机中嵌入了GPS模块(精简版的A-GPS),通过A-GPS搜索卫星, 获取经纬度。
使用GPS的弊端是:必须站在空旷的地方,头顶对着天空,如果云层厚了,也会受到一定的影响。
精确度:10-50米
使用Android是定位必备的权限:
< uses-permission android:name= " android.permission.ACCESS_FINE_LOCATION " /> //精确定位
<uses-permission android:name= "android.permission.ACCESS_MOCK_LOCATION" /> //模拟器
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> //粗糙定位
<uses-permission android:name= "android.permission.ACCESS_MOCK_LOCATION" /> //模拟器
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> //粗糙定位
//获取定位管理对象LocationManager lm=(LocationManager)getSystemService(LOCATION_SERVICE);String[] names=lm.getAllProviders();//获取所有的位置提供者,一般三种Criteria criteria=new Criteria();//查询条件,如果设置了海拔,则定位方式只能是GPS;criteria.setCostAllowed(true);//是否产生开销,比如流量费String provider=lm.getBaseProvider(criteria,true)//获取最好的位置提供者,第二个参数为true,表示只获取那些被打开的位置提供者lm.requestLocationUpdates(provier,0,0,new LocationListener(){});//获取位置。第二个参数表示每隔多少时间返回一次数据,第三个参数表示被定位的物体移动每次多少米返回一次数据。private class MyLocationListener implements LocationListener { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } @Override public void onLocationChanged(Location location) { System. out.println( "服务中位置监听发送了变化了" ); float accuracy = location.getAccuracy(); // 精确度 double altitude = location.getAltitude(); // 海拔 double latitude = location.getLatitude(); // 纬度 double longitude = location.getLongitude(); // 经度 String locationInfo = "jingdu:" + longitude + ",weidu:" + latitude + ",haiba:" + altitude + ",jingquedu:" + accuracy; Editor edit = sp.edit(); edit.putString( "location", locationInfo); edit.commit(); } }
0 0
- Android获取用户位置
- Android开发指南:获取用户位置
- Android中获取用户附近位置
- 获取用户位置信息
- iOS获取用户位置
- android 通过GPS获取用户地理位置并监听位置变化
- android 通过GPS获取用户地理位置并监听位置变化
- android 通过GPS获取用户地理位置并监听位置变化
- ios 获取用户的位置
- ios 9.0获取用户位置
- 任意位置获取用户头像
- 百度api获取用户位置
- android GPS 获取位置
- Android 位置获取
- android GPS 位置获取
- Android获取View位置
- android获取位置数据
- Android获取位置信息
- 杭电OJ 1438:钥匙计数之一
- 无锁HashMap的原理与实现
- Araleii & Bill的冠名权争夺战 (简单的博弈)
- 指向函数的指针作为参数时的使用方法
- 墨迹天气3.0引导动画
- Android获取用户位置
- 牛顿法求解柯西分布参数的最大似然估计(P055)
- 找工作面试之一快速排序
- hdoj 2371 decoded string. Decode the Strings
- uva-401 Palindromes
- [学习cython编程] Cython Won't Bite
- OpenCV中文网站例程——图像创建、保存和复制
- ASP.NET—006:GridView删除一行JS实现
- 在powerdesigner 使用实体的快捷方式