关于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方法,移除对于位置信息的监听。

更多相关文章

  1. Android(安卓)网络--我是怎么做的: Volley+OkHttp+Https
  2. Android(安卓)使用基于位置的服务(一)
  3. SDK和Android(安卓)Studio的下载安装
  4. android中wifi属性的介绍以及连接到指定的wifi
  5. android 應用程序安裝SD卡
  6. android中使用AES加解密
  7. Android(安卓)Mms 接收信息流程
  8. Android日记之2012\01\13
  9. AndroRat-Android木马使用教程

随机推荐

  1. android sax创建xml文件
  2. java操作properties配置文件
  3. 根据Schema写出XML文档四部曲
  4. android sax解析 xml方式
  5. android XPath 解析xml
  6. xml解析之使用dom4j的api对xml文件进行CR
  7. android sax解析xml文件(二)
  8. 小心XmlPullParser.netText()方法
  9. xpath技术解析xml以及案例模拟用户登录效
  10. android dom方式创建xml