android gps简单实用之一
通过android提供的gps功能可以方便的得到位置信息。由于本文是再模拟器中使用的gps所以要通过ddms发送gps位置信息。
main.xml文件只有一个textview节点就不在给出了。还有就是操作gps需要得到如下权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
具体的操作代码如下:
MainActivity.java
package com.example.locationmanager;import android.app.Activity;import android.content.Context;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.view.Menu;import android.widget.TextView;public class MainActivity extends Activity {private TextView tv_show;//定位管理器private LocationManager lm; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_show = (TextView) this.findViewById(R.id.tv_show); //获得系统提供的定位管理器 lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); //从gps获得最近的定位信息 Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); //使用location显示信息 updateView(location); //设置监听器 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 8, new LocationListener() {@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {}@Overridepublic void onProviderEnabled(String provider) {//当gps可用时,更新位置updateView(lm.getLastKnownLocation(provider));}@Overridepublic void onProviderDisabled(String provider) {updateView(null);}@Overridepublic void onLocationChanged(Location location) {//当gps定位信息发生改变时,更新位置'updateView(location);}}); } private void updateView(Location location) {if(location != null){StringBuffer sb = new StringBuffer();sb.append("实施位置信息:\n");sb.append("精度:");sb.append(location.getLongitude());sb.append("\n维度:");sb.append(location.getLatitude());sb.append("\n高度:");sb.append(location.getAltitude());sb.append("\n速度:");sb.append(location.getSpeed());sb.append("\n方向:");sb.append(location.getBearing());tv_show.setText(sb.toString());}else {tv_show.setText("");}}}