Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 459|回复: 0

开发交流:剖析Android增强功能的两种权限请求

[复制链接]

该用户从未签到

发表于 2011-10-24 10:36:40 | 显示全部楼层 |阅读模式
为了完成Android增强功能这项任务,我们主要用到Android的LocationManager对象,在进行操作该项目之前,我们需要解决一些Android的其他问题,其中权限是我们首先要扫除的第一个障碍。
Android增强功能的LocationManager支持两种权限请求:
1. 需要告知系统您希望取得用户的位置。
2. 需要告诉它您想要十分详细的地理信息。
您需要在AndroidManifest.xmlxml 文件<manifes获得位置管理器看起来好像挺简单的,但是还是得牢记一些事项。首先,我们也许只能在UI主线程中请求位置管理器。我们要么在有关动作的onCreate调用中请求LocationManager对象,要么使用LocationManager请求创建一个运行于主线程的可执行对象。
如您所见,这里声明了一个LocationManager对象,使用getSystemService获得您的对象,然后调用了requestLocationUpdates。您可能想知道位置更新时需要哪些参数。首先,您告诉系统,您想使用系统中GPS装置的位置更新功能。然后。
您告诉它您希望多长时间更新一次(本例时间间隔为100ms),并且每当移动一米以上时就更新。这样,就能迅速识别他们的移动情况并调整它们与其他对象的位置关系。最后,传入实现LocationListener接口的类的实例。为位置更新传递请求后,LocationListener类将收到初始位置,继之以后来位置的改变情况。下面是我们的LocationListener:
LocationListener gpsListener = new LocationListener(){  

      Location curLocation;  

      boolean locationChanged = false;   

      public void onLocationChanged(Location location)  

      {  

         if(curLocation == null)  

         {  

            curLocation = location;  

            locationChanged = true;  

         }  

           

         if(curLocation.getLatitude() == location.getLatitude() &&  

               curLocation.getLongitude() == location.getLongitude())  

            locationChanged = false;  

         else  

            locationChanged = true;  

           

         curLocation = location;  

      }  

      public void onProviderDisabled(String provider){}  

      public void onProviderEnabled(String provider){}  

      public void onStatusChanged(String provider, int status, Bundle extras){}  

};
复制代码
在上面的代码中,我们唯一需要关心的就是onLocationChanged这个方法。然而,我们还会介绍这个对象的其它方法。以便您将这个对象复制到您自己的代码中时能够了解它们。 一旦卫星锁定了这个设备,方法onLocationChanged就会被调用,之后每经过在请求更新时指定的时间间隔(本例中为100ms)后,就会调用一次。
每当位置更新时,Android增强功能都会带来一个Location对象。我们通过这个类可以获得目标的经纬度,并完成许多重要事情。这里我们最感兴趣的方法是getLatitude()、getLongitude()、bearingTo()与distanceTo()。使用这四个函数,我们可以计算出任何随后的位置的方位角,并确定出离您的距离有多远。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 06:31 , Processed in 0.295298 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表