Android(安卓)访问GPS获取位置信息
16lz
2021-01-24
关于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方法,移除对于位置信息的监听。
更多相关文章
- Android(安卓)网络--我是怎么做的: Volley+OkHttp+Https
- Android(安卓)使用基于位置的服务(一)
- SDK和Android(安卓)Studio的下载安装
- android中wifi属性的介绍以及连接到指定的wifi
- android 應用程序安裝SD卡
- android中使用AES加解密
- Android(安卓)Mms 接收信息流程
- Android日记之2012\01\13
- AndroRat-Android木马使用教程