关于Android的位置访问,包含两部分,一个是通过GPS模块,获取位置信息,另外一个是调用GOOGLE MAP的API,显示位置信息。目前的需求,主要还是获取地址信息,这样可以通过与服务器的交互,获取与位置相关的信息。
首先需要得到获取地址信息的软件许可:
AndroidManifest.xml文件中加入:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
注意:很多帖子对于permission的位置说了很多,有的说需要放在application节点里面之类的,其实放在外面是可以生效的。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="20101219"
android:versionName="alpha 0.3">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.CameraActivity" />
</application>
<uses-sdk android:minSdkVersion="6" />
</manifest>
有了许可,获取地址信息就很简单了。通过工厂方法获取LocationManager对象,并加入监听。
locationManager = (LocationManager) this.context
.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, this);
接听类,需要实现LocationListener接口。实现接口方法,其中只有一个是获取地址信息的方法onLocationChanged。
public void onLocationChanged(Location location) {
try {
if (location != null) {
JsRunHelper helper = new JsRunHelper();
helper.appendJs(sucessCallBack + "(\"" + location.getLongitude() + "\", \""
+ location.getLatitude() + "\");"); }
} finally {
locationManager.removeUpdates(this);
}
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status, Bundle extras) {
}
记得在获取完地址信息后,调用removeUpdates方法,移除对于位置信息的监听。
分享到:
相关推荐
这是获取位置信息的基础,没有这个权限,应用将无法访问GPS硬件: ```xml <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` 然后,我们可以使用Android的LocationManager服务来...
此外,考虑使用`WorkManager`或`JobScheduler`来安排定位任务,以在合适的时间获取位置信息。 6. **存储和分析NMEA数据** 如果需要保存接收到的NMEA数据,可以将它们写入文件,例如创建一个名为“nmea.log”的文件...
Android系统通过`LocationManager`服务来获取位置信息。首先,需要在Activity或Service中获取LocationManager的实例: ```java LocationManager locationManager = (LocationManager) getSystemService(LOCATION_...
`ACCESS_FINE_LOCATION`权限允许应用访问精确的GPS位置信息: ```xml <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` 接下来,我们创建一个`LocationManager`实例,它是Android...
LocationManager是一个系统服务,用于管理和获取位置信息。通过Context的getSystemService方法可以获取到它: ```java LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); ...
在Android系统中,获取设备的地理位置信息是移动应用开发中的常见需求,特别是在提供导航、位置服务或基于位置的社交功能时。本篇文章将详细介绍如何利用GPS(全球定位系统)技术在Android平台上获取设备的经纬度...
首先,Android系统提供了LocationManager服务来获取位置信息,包括GPS数据。开发者需要在AndroidManifest.xml文件中添加必要的权限,如`<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /...
在Android平台上,获取GPS定位是移动应用开发中的基础功能,尤其对于那些依赖地理位置信息的应用,如导航、社交、天气预报等。本示例程序"LocationDemo"是专门为开发者设计的,用于展示如何在Android Studio环境下...
Location服务是Android系统提供的一种定位机制,它能够获取到设备的位置信息,包括GPS(全球定位系统)、Wi-Fi、移动网络等多种方式。在AndroidManifest.xml文件中,你需要添加以下权限来允许应用访问位置信息: ``...
为了提高用户体验,可以考虑使用`FusedLocationProviderClient`(自Android API 14引入),它是Google Play服务的一部分,能更高效地管理和获取位置信息。 通过以上步骤,你就能实现一个简单的Android应用,点击...
Toast.makeText(this, "无法获取位置信息", Toast.LENGTH_SHORT).show(); } } } // 检查权限请求的结果 @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions...
在Android系统中,获取位置信息是一项关键功能,它允许应用为用户提供基于位置的服务,如导航、天气预报等。Android提供了多种API和类来获取位置数据,主要通过Android Location API和Google Play服务的Fused ...
要实现这个功能,开发者首先需要在AndroidManifest.xml文件中添加必要的权限,比如访问网络和获取位置信息的权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission ...
总的来说,这个简单的作品展示了如何在Android应用中利用GPS获取地理位置信息,并将这些信息持久化存储到SQLite数据库中。尽管现在的Android开发更倾向于使用Google Play Services的FusedLocationProviderClient,但...
在Android系统中,获取位置信息是移动应用开发中的常见需求,尤其在户外导航、地图服务等领域至关重要。本文将深入探讨两种主要的获取位置信息的方法:GPS(全球定位系统)和网络定位,着重解决在无网络连接时如何...
`ACCESS_FINE_LOCATION`权限允许应用访问高精度的位置信息,如GPS坐标。 接下来,我们需要创建一个LocationManager的实例,并注册一个LocationListener来监听位置更新。以下是一个简单的示例: ```java ...
首先,Android中的位置服务主要通过LocationManager类来管理,它提供了获取GPS以及其他位置提供者(如网络定位)的位置信息接口。要使用LocationManager,你需要在AndroidManifest.xml文件中添加相应的权限: ```...
在Android平台上,GPS(全球定位系统)定位是开发者常用的功能之一,用于获取设备的精确位置信息。本资源提供了Android GPS定位的实例源码,对于学习和理解如何在Android应用中集成GPS定位至关重要。通过分析这些...
在AndroidManifest.xml文件中,必须声明使用GPS的权限,这是获取位置信息的前提。添加以下代码: ```xml <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> ``` `ACCESS_FINE_LOCATION`...
在Android中,我们可以通过`LocationManager`服务来获取和设置位置信息。模拟GPS位置主要是为了在开发和测试阶段避免实际移动设备到特定地点。 2. **Android权限** 在AndroidManifest.xml中,你需要添加`ACCESS_...