当前位置: 首页 > news >正文

西安 医疗网站制作建设农产品网络营销网站

西安 医疗网站制作,建设农产品网络营销网站,wordpress怎样开发支付宝,装饰公司名称一. LocationManager#xff1a; LocationManager系统服务是位置服务的核心组件#xff0c;它提供了一系列方法来处理与位置相关的问题#xff0c;比如查询上一个已知位置#xff0c;定期更新设备的地理位置#xff0c;或者当设备进入给定地理位置附近时#xff0c;触发…一. LocationManager LocationManager系统服务是位置服务的核心组件它提供了一系列方法来处理与位置相关的问题比如查询上一个已知位置定期更新设备的地理位置或者当设备进入给定地理位置附近时触发应用指定意图等 (A). 使用LocationManager需要以下过程 1.获取LocationManager它不能直接实例化 LocationManager lm (LocationManager) getSystemService(Context.LOCATION_SERVICE); 2.了解LocationProvider它是位置信息提供者系统一般提供三种方式获取地理位置信息 1GPS_PROVIDER通过 GPS 来获取地理位置的经纬度信息 优点获取地理位置信息精确度高 缺点只能在户外使用获取经纬度信息耗时耗电 2NETWORK_PROVIDER通过移动网络的基站或者 Wi-Fi 来获取地理位置 优点只要有网络就可以快速定位室内室外都可 缺点精确度不高 3PASSIVE_PROVIDER被动接收更新地理位置信息而不用自己请求地理位置信息。 PASSIVE_PROVIDER 返回的位置是通过其他 providers 产生的可以查询 getProvider() 方法决定位置更新的由来需要 ACCESS_FINE_LOCATION 权限但是如果未启用 GPS则此 provider 可能只返回粗略位置匹配 获取provider的方法有getProvidersgetAllProvidersgetBestProvider根据一组条件来返回合适的provider ListString list locationManager.getProviders(true); if (list ! null) { for (String x : list) { Log.e(gzq, name: x); } } LocationProvider lpGps locationManager.getProvider(LocationManager.GPS_PROVIDER); LocationProvider lpNet locationManager.getProvider(LocationManager.NETWORK_PROVIDER); LocationProvider lpPsv locationManager.getProvider(LocationManager.PASSIVE_PROVIDER); Criteria criteria new Criteria(); // Criteria是一组筛选条件 criteria.setAccuracy(Criteria.ACCURACY_FINE); //设置定位精准度 criteria.setAltitudeRequired(false); //是否要求海拔 criteria.setBearingRequired(true); //是否要求方向 criteria.setCostAllowed(true); //是否要求收费 criteria.setSpeedRequired(true); //是否要求速度 criteria.setPowerRequirement(Criteria.NO_REQUIREMENT); //设置电池耗电要求 criteria.setBearingAccuracy(Criteria.ACCURACY_HIGH); //设置方向精确度 criteria.setSpeedAccuracy(Criteria.ACCURACY_HIGH); //设置速度精确度 criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH); //设置水平方向精确度 criteria.setVerticalAccuracy(Criteria.ACCURACY_HIGH); //设置垂直方向精确度 //返回满足条件的当前设备可用的provider第二个参数为false时返回当前设备所有provider中最符合条件的那个provider但是不一定可用 String mProvider locationManager.getBestProvider(criteria, true); if (mProvider ! null) { Log.e(gzq, mProvider: mProvider); } } 打印出来的结果就是passivegpsnetwork 3.声明权限 1ACCESS_FINE_LOCATION是精确位置如果使用GPS_PROVIDER或者同时使用GPS_PROVIDER和NETWORK_PROVIDER需声明该权限它对于这两个provider都是有效的 2ACCESS_COARSE_LOCATION是粗略位置该权限只针对NETWORK_PROVIDER。 4.注册一个位置监听器来接受结果 private final class MyLocationListener implements LocationListener{ public void onLocationChanged(Location location) { Log.e(gzq, onLocationChanged location.toString()); } public void onStatusChanged(String provider, int status, Bundle extras) { Log.e(gzq, onStatusChanged status); } public void onProviderEnabled(String provider) { Log.e(gzq, onProviderEnabled); } public void onProviderDisabled(String provider) { Log.e(gzq, onProviderDisabled); } } 这个回调里面有4个方法 1onLocationChanged当位置发生改变后就会回调该方法经纬度相关信息存在Location里面 2onStatusChanged我们所采用的provider状态改变时会回调该状态有3种 LocationProvider.OUT_OF_SERVICE 0无服务 LocationProvider.AVAILABLE 2provider可用 LocationProvider.TEMPORARILY_UNAVAILABLE 1provider不可用 3onProviderEnabled当provider可用时被触发比如定位模式切换到了使用精确位置时GPSProvider就会回调该方法 4onProviderDisabled当provider不可用时被触发比如定位模式切换到了使用使用网络定位时GPSProvider就会回调该方法 5.获取位置信息调用监听方法不过在获取位置前先判断一下要调用的provider是否可用 if (mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5,10, locationListener); } 这个方法表明要跟踪GPS位置的变化并且每5秒刷新一次同时两次的位置的间隔要超过10米; 在不需要位置的时候解注册监听 locationManager.removeUpdates(locationListener); 关于requestLocationUpdates有一些问题需要注意 1刚才我们传入的是Listener其实也可以用PendingIntent来代替Listener当位置更新时会通过广播回调使用2个键KEY_LOCATION_CHANGED和Location来接收位置变化 2参数这里里可以传递一个Looper如果不指定的话则调用线程必须已经是一个Looper线程比如调用Activity的主线程如果指定了Looper则在提供的Looper线程上进行回调 (B). LocationManager还提供了一些其他有用的方法 1.获取缓存中的位置信息getLastKnownLocation Location location lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 该方法不会发起监听返回的是上一次的位置信息但此前如果没有位置更新的话返回的位置信息可能是错误的 2.获取一次定位结果requestSingleUpdate locationManager.requestSingleUpdate(LocationManager.GPS_PROVIDERlocationListenernull); 如果不想一直监听位置信息那么可以用requestSingleUpdate来实现只请求一次定位该方法也要在主线程上执行 3.发送辅助指令sendExtraCommand mLocationManager.sendExtraCommand(LOC,NOTIFY_DOWNLOAD, extras); 可以通过Bundle参数来发送相关信息 4.判断provider是否可用 mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); 5.添加地理围栏 locationManager.addProximityAlert(38.234, 114.234, 5, -1, PendingIntent.getBroadcast(this, 1, new Intent(), 3)); 可以设置一个区域当进入或离开这个区域的时候会收到通知前两个参数指定一个点第三个参数是半径第四个参数是超时时间设置为-1表示不存在超时最后一个是广播接收器。 触发的Intent将使用键KEY_PROXIMITY_ENTERING如果值为true则设备进入邻近区域如果是false说明设备离开该区域。
http://www.w-s-a.com/news/147116/

相关文章:

  • 建立企业网站公司医疗创意小产品设计
  • 深圳 做网站 车公庙免费的招标网有哪些
  • 网站在那里备案成都成华区网站建设
  • 做网站选哪家好搜索引擎优化的目标体系包括哪些
  • 做数据可视化的网站ppt2016是制作网页的软件
  • 济宁市建设工程质量监督站网站徐州网站优化推广
  • 北京网站设计多少钱php做商品网站
  • 能打开的网站你了解的彩票网站开发dadi163
  • 手机做网站价格优秀企业网站建设价格
  • 电商网站建设企业做网站的客户多吗
  • 有做思维图的网站吗西安建设市场诚信信息平台网站
  • 网站建设求职具备什么30岁学网站开发
  • 官方网站minecraft北京低价做网站
  • 网站建设报价兴田德润机械加工网络接单
  • 免费的推广网站安卓app制作平台
  • 长春火车站附近美食建设信用卡银行积分兑换商城网站
  • 网站提交网址如何备份wordpress网页
  • 龙腾盛世网站建设医院管理系统
  • 网站切换图片做背景怎么写外贸营销邮件主题一般怎么写
  • 基于html5的网站开发wordpress主题工具
  • php网站开发的成功经历公司网站现状
  • 软件发布网站源码中国企业公示信息网
  • flash 的网站网站型销售怎么做
  • 营销型网站单页网站的域名和密码
  • 建网站保定seo自动发布外链工具
  • 做公众号关注网站做课件用这15大网站
  • 怎么制作公司自己网站店铺设计软件手机版
  • 深圳网站关键词优化公司哪家好怎么选择锦州网站建设
  • 标准网站优势项目合作网站
  • 无人机东莞网站建设wordpress站群管理破解版