网站大量收购独家精品文档,联系QQ:2885784924

Android位置策略.docxVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android位置策略

让你的应用程序了解用户的位置,可以更加智能的给用户发送更好的信息。在开发一款Android版的位置感知应用程序时,你能够利用GPS和Android的网络位置提供器来获取用户的位置。尽管GPS是最准确的,但它只能在户外工作,并且会快速的消耗电池电量,同时返回的位置信息也没有用户想要的那样快。Android的网络位置提供器使用蜂窝基站和Wi-Fi信号来判定用户位置,使用这种方式,可以在屋内和户外来提供位置信息,它响应快,并且耗电很少。要在你的应用程序中获取用户的位置,你能够同时使用GPS和网络位置提供器,或其中一种。 在确定用户位置中所面临的挑战 从移动设备上获取用户位置可能是复杂的。有几个原因可能导致读取的位置(不管使用哪种方式)包含错误和不准确信息。以下是在用位置中所包括的一些错误源: 众多的位置源 GPS、Cell-ID和Wi-Fi都能够提供用户位置的线索。决定使用和信任哪条线索主要要权衡精度、速度和电池效率。 用户的移动 因为用户位置的改变,你必须要因此而经常的重新计算用户的位置。 不同的精度 因为位置估算来源与不同的位置探测源,所以它们的精度并不一致。从一个位置探测源10秒前获取的位置,可能比从另一个位置探测源获取的位置或同一个位置探测源所获取的位置要更准确。 这些问题使得获取一个稳定可靠的用户位置变的很困难。本文所提供的信息会帮助你在遇到这些问题的挑战时,来获取稳定可靠的位置信息。它还提供了一些建议,以便你能够在应用程序中提供准确的反应迅速的位置体验。 请求位置更新 在解决上述位置错误之前,首先要介绍如何在Android上获取用户位置。 通过回调的方式来获得在Android工作的用户位置。通过调用带有LocationListener对象的requestLocationUpdates()方法来指示你想要接收的来自LocationManager对象(位置管理器)的位置更新。你的locationListener接口必须实现位置管理器在用户位置改变或服务改变状态时所要调用的几个回调方法。 例如,下列代码显示了如何定义一个LocationListener接口,以及如何请求位置更新: // Acquire a reference to the system Location Manager LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); // Define a listener that responds to location updates LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location location) { // Called when a new location is found by the network location provider. makeUseOfNewLocation(location); } public void onStatusChanged(String provider, int status, Bundle extras) {} public void onProviderEnabled(String provider) {} public void onProviderDisabled(String provider) {} }; // Register the listener with the Location Manager to receive location updates locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); 在requestLocationUpdates()方法中的第一个参数是要使用的位置提供器的类型(在这个例子中,是基于蜂窝基站和Wi-Fi的网络位置提供器)。你能够用第二和第三个参数来控制你的监听器接收位置更新的频率---第二个参数是两个通知之间的最小间隔,第三个参数是两个通知之间位置改变的最小距离,把它们都设置为0,尽可能的提高位置通知的频率。最后一个参数是你的LocationListener,它用于接受位置更新的回调。 要请求来自GPS提供器的位置更新,用GPS_PROVIDER来代替NETWORK_PROVIDER。你还能够通过调用2~1次

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档