Android 访问GPS获取位置信息_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android 访问GPS获取位置信息

Android 访问GPS获取位置信息

 2010/12/23 8:05:14  wu.sheng  http://wu-sheng.javaeye.com  我要评论(0)
  • 摘要:关于Android的位置访问,包含两部分,一个是通过GPS模块,获取位置信息,另外一个是调用GOOGLEMAP的API,显示位置信息。目前的需求,主要还是获取地址信息,这样可以通过与服务器的交互,获取与位置相关的信息。首先需要得到获取地址信息的软件许可:AndroidManifest.xml文件中加入:<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>注意
  • 标签:android

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

发表评论
用户名: 匿名