用户定位location
来源:互联网 发布:射钉枪淘宝买的会查吗 编辑:程序博客网 时间:2024/05/05 16:06
User Location能做什么?
1、获取用户的位置
2、追踪用户的移动
GPS定位比较准确,但是很费电
GPS定位:使用GPS卫星定位,需要在AndroidManifest.xml中声明权限:
NETWORK定位:使用信号接收塔和WIFI介入点进行定位,需要在AndroidManifest.xml文件中声明权限:
1、Location Manager:用户管理android用户定位的服务
2、Location Providers:提供了多种定位方式供开发者选择
Criteria可以设置一系列的查询条件,可以根据指定的Criteria条件来过滤获得LocationProvider
不同的LocationProvider决定了定位能力,包括费用、耗电多少、精确度,还会有一些方向、速度、和高速信息。
获取用户当前位置的步骤:
1、在AndroidManifest.xml当中声明权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
2、获取LocationManager对象
3、选择LocationProvider
4、绑定LocationListener对象
public class MainActivity extends Activity {LocationManager lm;MyLocationListener listener = new MyLocationListener(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.genzong).setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v) {lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); //第一个参数选择合适的provider,第二个参数是时间间隔是1秒中,//第三个参数是位置发生0米的变化就会触发,第四个参数是触发的监听器 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, listener);} }); findViewById(R.id.dingwei).setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v) {lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); printLocation(location);} }); findViewById(R.id.criteria).setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v) {System.out.println("R.id.criteria");lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Criteria criteria = new Criteria(); //设置精确程度为高精确 criteria.setAccuracy(Criteria.ACCURACY_FINE); //设置是否需要高度设置 criteria.setAltitudeRequired(false); //是否需要方位设置 criteria.setBearingRequired(false); //是否需要速度信息 criteria.setSpeedRequired(true); //是否产生费用 criteria.setCostAllowed(true);// //获取最符合条件的LocationProvider,true表示只返回可以使用的locationProvider// String bestProvider = lm.getBestProvider(criteria, true); //获取所有符合条件的locationProvider,false表示不可用的locationProvider也显示出来 List<String> matchProviders = lm.getProviders(criteria, false); for(String temp : matchProviders){ System.out.println(temp); }} }); } public static void printLocation(Location l){ System.out.println("jingdu :" + l.getAccuracy()); System.out.println("gaodu : " + l.getAltitude()); System.out.println("fangxiang : " + l.getBearing()); System.out.println("sudu : " + l.getSpeed()); } public class MyLocationListener implements LocationListener{ //位置更新的时候调用下面的方法@Overridepublic void onLocationChanged(Location location) {System.out.println("jingdu : " + location.getLongitude());System.out.println("weidu : " + location.getLatitude());}@Overridepublic void onProviderDisabled(String provider) {}@Overridepublic void onProviderEnabled(String provider) {}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {} }}
- 用户定位location
- Location 定位获取用户许可
- Android 之用户定位(User Location)
- Android位置服务--用户定位Location
- location 定位
- Android之用户定位(User Location)二
- Android 位置服务——用户定位User Location
- nginx location 定位
- 室内定位indoor location
- Core Location定位
- 室内定位indoor location
- iOS Location 定位功能
- [nginx] location定位
- Core Location定位
- 关于Android用户定位获取location值为null的解决方法
- iOS 定位 location heading beacon 初步定位
- IOS Core Location 定位功能
- ios-使用Core Location定位
- 买衣服应该注意的问题?
- 从网站中“扒”新闻
- 线程同步synchronized
- 容器和泛型的简单介绍
- 线程常用的方法
- 用户定位location
- CSS3资料下载
- 从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题
- 正则分组和边界匹配
- UDP socket编程
- 链表模式
- etmvc结合easyui-tree开发时的问题
- 利用MSXML解析XML文本(1)
- 简单工厂模式