位置: 编程技术 - 正文
推荐整理分享Android---58---初学GPS定位(android零基础),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:android从入门到精通,android入门视频教程,android零基础入门教程,android新手入门,android入门视频教程,android零基础入门教程,android入门教程,android零基础入门教程,内容如对您有帮助,希望把文章链接给更多的朋友!
GPS英文是Global Positioning System 全球定位系统的简称。
Android为GPS功能支持专门提供了一个LocationManager,位置管理器。所有GPS定位相关的服务、对象都将由该对象产生。
获取LocationManager实例:LocationManager lm = (LocationManager)getSystemService (Context.LOCATION_SERVICE)
三个核心API:LocationManager、LocationProvider、Location
LocationManager提供如下方法:
boolean addGpsStatusListener(GpsStatus.Listener listener):添加一个监听GPS状态的监听器;
void addProximityAlert(double latitude,double longitude,float radius,long expiration,PendingIntent intent):添加一个临近警告;
List getAllProviders():获取所有的LocationProvider列表; String getBestProvider(Criteria criteria,boolean enabledOnly):根据制定条件返回最优的LocationProvider对象;
GpsStatus getGpsStatus(GpsStatus status):获取GPS状态;
Location getLastKnownLocation(String provider):根据LocationProvider获取最近一次已知的Location;
LocationProvider getProvider(String name):根据名称来获取LocationProvider;
List getProviders(Criteria criteria,boolean enabledOnly):根据制定条件获取满足条件的全部LocationProvier的名称;List getProviders(boolean enabledOnly):获取所有可用的LocationProvider; boolean isProviderEnabled(String provider):判断制定名称的LocationProvider是否可用;
void removeGpsStatusListener(GpsStatus.Listener listener):删除GPS状态监听器;
void removeProximityAlert(PendingIntent intent):删除一个趋近警告;
void requestLocationUpdates(String provider,long minTime,float minDistance,PendingIntent intent):通过指定的LocationProvider周期性获取定位信息,并通过Intent启动相应的组件;
void requestLocationUpdates(String provider,long minTime,float minDistance,LcoationListener listener):通过指定的LocationProvider周期性的获取定位信息,并触发listener对应的触发器;
LocationProvider类
定位组件的抽象标识,通过它可以获取定位的相关信息;
提供如下常用方法:
String getName():返回该LocationProvider的名称;
int getAccuracy():返回该LocationProvider的精度;
int getPowerRequirement():返回该LocationProvider的电源需求;
boolean hasMonetaryCost():返回LocationProvider是收费还是免费;
boolean meetsCriteria(Criteria criteria):判断该LocationProvider是否满足Criteria条件;
boolean requiresCell():判断该LocationProvider是否需要访问网路基站;
boolean requiresNetword():判断该LocationProvider是否需要网路数据;
boolean requiresStatellite():判断该LocationProvider是否需要访问卫星的定位系统;
boolean supportsAltitude():判断该LocationProvider是否支持高度信息;
boolean supportsBearing():判断该LocationProvider是否支持方向信息;
boolean supportsSpeed():判断该LocationProvider是否支持速度信息;
LocationListener:位置监听器,监听位置变化,监听设备开关与状态
Location类
代表位置信息的抽象类;
提供如下方法来获取定位信息:
float getAccuracy():获取定位信息的精度;
double getAltitude():获取定位信息的高度;
float getBearing():获取定位信息的方向;
double getLatitude():获取定位信息的经度;
double getLongitude():获取定位信息的纬度;
String getProvider():获取提供该定位信息的LocationProvider;
float getSpeed():获取定位信息的速度;
boolean hasAccuracy():判断该定位信息是否有经度信息;
boolean hasAltitude():判断定位信息是否有高度信息;
boolean hasBearing():判断定位信息是否有方向信息;
boolean hasSpeed():判断定位信息是否有速度信息;
LocationListener:位置监听器,监听位置变化,监听设备开关与状态
步骤:1.获取系统的LocationManager对象2.使用LocationManager,通过指定LocationProvider来获取定位信息,定位信息由Location对象来表示3.从Location对象中获取定位信息
下面是几个例子:
1.获取所有可用的LocationProvider:
布局文件:
Activity:
模拟器中所有可用的LocationProvider有两个:passive:由LocationProvider.PASSIVE_PROVIDER常量表示gps:由LocationProvider.GPS_PROVIDER常量表示。代表通过GPS获取定位信息的LocationProvider对象
还有一个名为network的LocationProvider,由LocationProvider.NETWORK_PROVIDER常量表示,代表通过移动通信网络获取定位信息的LocationProvider对象。
2.通过名称来获取指定的LocationProvider:
例如:
获取基于GPS的LocationProvider:LocationProvider locProvider = lm.getProvider(LocationManager.GPS_PROVIDER)
根据Criteria获得LocationProvider:
布局文件:
Activity:
3.获取定位数据:
通过模拟器发送GPS信息:
启动模拟器之后,在DDMS下的Emulator Control 面板即可发送GPS定位信息。
布局文件:
Activity:
4.临近警告:通过LocationManager.addProximityAlert(double latitude,double longitude , float radius , long expiration ,PendingIntent intent)添加一个临近警告
参数:
latitude:指定固定点的经度longitude:指定固定点的纬度radius:半径长度expiration:该参数指定经过多少毫秒后该临近警告就会过期失效intent:该参数指定临近该固定点时出发该intent对应的组件。
布局文件:
Activity:
ProximityAlertReciever:
Android带有undo,redo功能的EditText 没别的,只有代码自己看。。。packagezwp.mycalendar.widget;importjava.util.ArrayList;importjava.util.List;importandroid.content.Context;importandroid.text.Editable;importandroid.text.TextW
【正途】Android R.java文件丢失的问题 这个才是正途,网上很多方法都不靠谱,原文地址:
获取Android设备挂载的所有存储器 转自:
标签: android零基础
本文链接地址:https://www.jiuchutong.com/biancheng/382196.html 转载请保留说明!下一篇:Android带有undo,redo功能的EditText(Android带有注册界面的简单app)
友情链接: 武汉网站建设