- 浏览: 562829 次
- 来自: -
博客专栏
-
libgdx 游戏开发
浏览量:12275
文章分类
- 全部博客 (171)
- OS (1)
- JavaScript (13)
- Struts (2)
- Regular Expression (1)
- Java (14)
- HTML (4)
- XML (1)
- Non-Relational Database (2)
- Miscellaneous (7)
- Lotus Notes (8)
- Algorithm (3)
- Web Analytics (6)
- Web (8)
- Perl (3)
- PHP (3)
- C & C++ (1)
- Shell (7)
- Google (1)
- Android (31)
- iPhone (1)
- SQL (1)
- HTML5 (3)
- jQuery (6)
- CSS (6)
- PostgreSQL (1)
- Design Patterns (1)
- Excel (1)
- Magento (4)
- jMeter (3)
- SEO (1)
- libgdx (5)
- Software (4)
- App (1)
- Game (1)
- Gradle (1)
- Linux (16)
- Ubuntu (4)
- Docker (2)
- Spring (2)
- Other (3)
- Directory Server (1)
- CentOS (1)
- Python (1)
- VCS (3)
- Database (1)
- Open Source (1)
最新评论
-
ls0609:
赞一个,支持下博主。
[原创] Android ListView 在右上角添加三角形图标和文字 -
love297:
不让别人商用,自己先商用起来了。
手机游戏开发展示 -
a851206:
你的有些类是哪里来的?我想研究一下你的程序,可是有些类没有代码 ...
[原创] Google Custom Search & Yahoo Boss Search | Web Search API 使用 -
ypppk:
BitmapFactory.Options options = ...
[原创] 连载 1 - 深入讨论 Android 关于高效显示图片的问题 - 如何高效的加载大位图 -
笑遍世界:
我也遇到了,弄清了其中原因,可参考我的博客:http://sm ...
[原创] 使用 jMeter 登录 Wordpress
最近在做Android手机应用开发,还是很有意思的。其实如果只是做简单手机应用开发而不是手机游戏开发的话,还是很简单的。把主要的控件掌握了,就可以开发简单的应用了。
下面主要说一下在Android中使用GPS功能。
开发由于GPS功能时,常与Google Map相关,因此先推荐一篇讲解Google Map的文章:
http://mobiforge.com/developing/story/using-google-maps-android
该文章详细的讲解了Android中如何使用Google Map的各种功能。文章甚好,强烈推荐。
看完了如上文章后,我们就来讲解下如何使用GPS。
首先在AndroidManifest.xml中添加位置服务权限:
然后再看如下代码例:
先注册LocationManager,然后就可以通过访问getLastKnownLocation得到当前的GPS坐标。是不是很简单。
既然是GPS,我们当然不只是想知道当前的位置,更重要的是要随着位置的移动,GPS信息也要更新。那么我们需要怎么做呢?
还先看如下代码例:
声明自己的LocationListener后,调用requestLocationUpdates方法,就可以得到最新的GPS信息。
常用方法说明:
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
当时间超过minTime(单位:毫秒),或者位置移动超过minDistance(单位:米),就会调用listener中的方法更新GPS信息。
官方文档中有如下说明:
1. minTime的值最好是不小于60000(即:1分钟),这样会更加高效且节电。
2. 如果要尽可能实时的更新GPS信息,请将minTime和minDistance都设置成0。
以说明下来自官方文档:
Registers the current activity to be notified periodically by the named provider. Periodically, the supplied LocationListener will be called with the current Location or with status updates.
It may take a while to receive the most recent location. If an immediate location is required, applications may use the getLastKnownLocation(String) method.
In case the provider is disabled by the user, updates will stop, and the onProviderDisabled(String) method will be called. As soon as the provider is enabled again, the onProviderEnabled(String) method will be called and location updates will start again.
The frequency of notification may be controlled using the minTime and minDistance parameters. If minTime is greater than 0, the LocationManager could potentially rest for minTime milliseconds between location updates to conserve power. If minDistance is greater than 0, a location will only be broadcasted if the device moves by minDistance meters. To obtain notifications as frequently as possible, set both parameters to 0.
Background services should be careful about setting a sufficiently high minTime so that the device doesn't consume too much power by keeping the GPS or wireless radios on all the time. In particular, values under 60000ms are not recommended.
The calling thread must be a Looper thread such as the main thread of the calling Activity.
下面主要说一下在Android中使用GPS功能。
开发由于GPS功能时,常与Google Map相关,因此先推荐一篇讲解Google Map的文章:
http://mobiforge.com/developing/story/using-google-maps-android
该文章详细的讲解了Android中如何使用Google Map的各种功能。文章甚好,强烈推荐。
看完了如上文章后,我们就来讲解下如何使用GPS。
首先在AndroidManifest.xml中添加位置服务权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
然后再看如下代码例:
LocationManager locMan = (LocationManager) getSystemService(Context.LOCATION_SERVICE); Location loc = locMan.getLastKnownLocation(LocationManager.GPS_PROVIDER); if (loc != null) { lat = loc.getLatitude(); Log.d(TAG, "latitude: " + lat); lng = loc.getLongitude(); Log.d(TAG, "longitude: " + lng); }
先注册LocationManager,然后就可以通过访问getLastKnownLocation得到当前的GPS坐标。是不是很简单。
既然是GPS,我们当然不只是想知道当前的位置,更重要的是要随着位置的移动,GPS信息也要更新。那么我们需要怎么做呢?
还先看如下代码例:
LocationListener locLis = new MyLocationListener(); locMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10, locLis); ... ... ... public class MyLocationListener implements LocationListener { @Override public void onLocationChanged(Location loc) { if (loc != null) { p = new GeoPoint((int) (loc.getLatitude() * 1E6), (int) (loc.getLongitude() * 1E6)); mc.animateTo(p); mc.setZoom(14); mc.setCenter(p); } } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } }
声明自己的LocationListener后,调用requestLocationUpdates方法,就可以得到最新的GPS信息。
常用方法说明:
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
当时间超过minTime(单位:毫秒),或者位置移动超过minDistance(单位:米),就会调用listener中的方法更新GPS信息。
官方文档中有如下说明:
1. minTime的值最好是不小于60000(即:1分钟),这样会更加高效且节电。
2. 如果要尽可能实时的更新GPS信息,请将minTime和minDistance都设置成0。
以说明下来自官方文档:
Registers the current activity to be notified periodically by the named provider. Periodically, the supplied LocationListener will be called with the current Location or with status updates.
It may take a while to receive the most recent location. If an immediate location is required, applications may use the getLastKnownLocation(String) method.
In case the provider is disabled by the user, updates will stop, and the onProviderDisabled(String) method will be called. As soon as the provider is enabled again, the onProviderEnabled(String) method will be called and location updates will start again.
The frequency of notification may be controlled using the minTime and minDistance parameters. If minTime is greater than 0, the LocationManager could potentially rest for minTime milliseconds between location updates to conserve power. If minDistance is greater than 0, a location will only be broadcasted if the device moves by minDistance meters. To obtain notifications as frequently as possible, set both parameters to 0.
Background services should be careful about setting a sufficiently high minTime so that the device doesn't consume too much power by keeping the GPS or wireless radios on all the time. In particular, values under 60000ms are not recommended.
The calling thread must be a Looper thread such as the main thread of the calling Activity.
发表评论
-
[转] DialogFragment Fragment already added
2017-10-25 11:16 2770原文地址:http://blog.csdn.net/u0129 ... -
Android Studio .gitignore
2017-10-16 15:44 918参考文献: https://github.com/github ... -
[转] How to detect incoming calls in an Android
2017-10-13 14:14 1240原文地址:https://stackoverflow.com/ ... -
[转] Android 检测电源按钮是否被按下
2017-10-11 12:55 1070原文地址:https://stackoverflow.com/ ... -
[原创] Android Activity onNewIntent() 详解
2017-08-16 13:46 4814阅读难度:中 阅读前提: 1. 需要了解 Android 的生 ... -
[转] Android Webview: “Uncaught TypeError: Cannot read property 'getItem' of null
2017-08-14 15:09 2369原文地址:https://stackoverflow.com/ ... -
[原创] 使用 Vitamio 播放视频作为 Splash 时出现失真情况的解决方案
2017-08-02 09:10 1233目前在做关于视频及流媒体播放项目时,有这样一个需求,应用启动时 ... -
[转] Android: Expand/collapse animation
2017-07-31 14:57 1594原文地址:https://stackoverflow.com/ ... -
[原创] Android ListView 在右上角添加三角形图标和文字
2017-07-26 17:24 2801最终显示效果如下图,在右上角添加三角形图标并在图标内显示文字: ... -
[转] Detect home button press in android
2017-07-20 17:49 1194原文地址:https://stackoverflow.com/ ... -
[原创] 开启 Android TextView Marquee
2017-07-18 15:47 1835亲测可能。直接上代码。 测试机器:XiaoMi 2S Andr ... -
[原创] 小米手机无法真机调试
2017-07-06 09:10 6513系统环境: 小米 2S MIUI 版本:8.0.1.0(LXA ... -
了解数据绑定 - Data Binding Library
2017-06-22 15:31 996原文地址: -
How to play gif with Fresco
2017-06-22 14:00 676原文地址:https://stackoverflow.com/ ... -
设置 Toolbar(ActionBar) 上的按钮颜色
2017-06-22 08:11 2094原文地址: https://stackoverflow.com ... -
Display back button on action bar and back event
2017-06-22 08:00 771原文地址: https://stackoverflow.com ... -
Gradle 修改 Maven 仓库地址
2017-06-02 15:51 1703修改 Gradle Maven 仓库地址为阿里云镜像 修改根 ... -
[转] How to clear cookies and cache of webview on Android when not in webview?
2017-04-26 09:28 2214原文地址:http://stackoverflow.com/a ... -
[转] Android 在程序中如何动态的修改程序图标
2017-03-02 17:05 962http://stackoverflow.com/a/4150 ... -
[转] Android Libraries
2017-01-16 10:28 579原文地址: https://dzone.com/article ...
相关推荐
1. `onLocationChanged(Location loc)`:当GPS位置更新时,系统会调用此方法,提供新的`Location`对象。 2. `onProviderDisabled(String s)`:当GPS提供者被禁用时触发。 3. `onProviderEnabled(String s)`:GPS提供...
在Android系统中,GPS(全球定位系统)功能是移动应用开发中常用的一种技术,主要用于获取设备的当前位置信息。这篇文档将深入探讨如何在Android平台上利用GPS进行位置更新。 首先,要使用GPS功能,必须在`...
android程序的自动更新 和 基于GPS定位的轨迹存储.zip BaiduMap_AndroidSDK_v2.1.2_All.zip BaiduMap_AndroidSDK_v2.1.2_Sample.zip BMapRoutePlan.rar ContextMenu 上下文选项菜单,长按后跳出菜单.zip Fragment...
本文将详细讲解如何利用Android的GPS功能获取经度、纬度和海拔等位置信息。 首先,我们需要在AndroidManifest.xml文件中添加必要的权限。Android系统为了保护用户隐私,对获取地理位置信息有严格的权限控制,因此...
在Android平台上,GPS(全球定位系统)定位是开发者常用的功能之一,用于获取设备的精确位置信息。本资源提供了Android GPS定位的实例源码,对于学习和理解如何在Android应用中集成GPS定位至关重要。通过分析这些...
在Android开发中,有时我们需要对GPS位置进行模拟测试,例如在开发地图应用或者与地理位置相关的功能时。这个“android-GPS位置模拟精简代码自创可用”项目提供了一个方便的方法来实现这一目标,无需实际移动设备就...
在Android平台上,GPS(全球定位系统)是移动设备获取地理位置信息的重要途径。GPS技术通过接收来自卫星的信号来计算设备的精确位置。然而,由于多种因素,如信号干扰、多路径效应,GPS信号可能会出现不准确或跳变的...
一,在很多提供定位服务的应用程序中,不仅需要获取当前的位置信息,还需要监视位置的变化,在位置改变时调用特定的处理方法 ,其中LocationManager提供了一种便捷、高效的位置监视方法requestLocationUpdates(),...
String str = "当前位置:\n"; //获取系统服务 lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE); statusListener = new GpsStatus.Listener() //GPS状态监听器 { @...
Android的GPS HAL接口定义了一系列C语言接口,包括初始化、设置参数、获取位置更新、关闭服务等方法。驱动开发者需要实现这些接口,以便上层的Location Provider可以调用,进而提供给应用开发者使用。 5. **调试与...
在Android系统中,GPS(全球定位系统)是设备获取地理位置信息的重要途径。"Android GPS 收星测试APK"是一个专为Android用户设计的应用程序,主要用于检测和分析GPS的接收卫星信号情况。这个APK可以帮助开发者、硬件...
GPS 位置的计算是指根据 GPS 数据计算出当前的位置信息;GPS 状况的报告是指将 GPS 硬件的状态信息报告给 Framework 层。 在 Android GPS HAL 中,GPS 硬件抽象层的实现主要涉及到以下几个文件:framework/base/...
3. **位置报告**:通过HAL接口,驱动将解析后的定位信息上报给位置服务,如LocationManagerService,供应用调用获取当前位置。 4. **设置和控制**:HAL提供了设置GPS参数的接口,例如开启/关闭GPS,设置定位精度、...
在Android系统中,Ublox GPS驱动扮演着至关重要的角色,它是连接硬件GPS模块与操作系统之间的桥梁,使得设备能够接收并处理卫星信号,提供精确的位置信息。本文将深入探讨Android Ublox GPS驱动的相关知识点,包括其...
在Android系统中,GPS(全球定位系统)是用于获取设备位置信息的重要组件。通常,当一个应用程序需要使用GPS时,它会通过系统UI提示用户授权访问地理位置。然而,有些开发者可能需要在没有用户交互的情况下强制开启...
首先,Android系统提供了LocationManager服务来获取位置信息,包括GPS数据。开发者需要在AndroidManifest.xml文件中添加必要的权限,如`<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /...
在Android系统中,GPS(全球定位系统)是设备获取地理位置信息的重要途径。NMEA(National Marine Electronics Association)数据是GPS接收器输出的一种标准格式,包含了关于地理位置、时间、卫星状态等丰富的信息。...
总的来说,这个简单的作品展示了如何在Android应用中利用GPS获取地理位置信息,并将这些信息持久化存储到SQLite数据库中。尽管现在的Android开发更倾向于使用Google Play Services的FusedLocationProviderClient,但...
在`AndroidManifest.xml`中添加必要的权限声明,主要是`ACCESS_FINE_LOCATION`和`ACCESS_COARSE_LOCATION`,前者允许应用访问精确的GPS位置信息,后者则提供大致的定位信息。 ```xml <uses-permission android:...