android gps简单实用之一
5009 点击·1 回帖
![]() | ![]() | |
![]() | 通过android提供的gps功能可以方便的得到位置信息。由于本文是再模拟器中使用的gps所以要通过ddms发送gps位置信息。 main.xml文件只有一个textview节点就不在给出了。还有就是操作gps需要得到如下权限 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 具体的操作代码如下: MainActivity.java [java] view plaincopyprint? 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() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { //当gps可用时,更新位置 updateView(lm.getLastKnownLocation(provider)); } @Override public void onProviderDisabled(String provider) { updateView(null); } @Override public 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(""); } } } | |
![]() | ![]() |