Java代码:

package test.GPS;import android.app.Activity;import android.content.Context;import android.location.Criteria;import android.location.Location;import android.location.LocationListener;import android.location.LocationManager;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class TestGPSActivity extends Activity{private static final String TAG = "GPSTestActivity";private Location preLocation;private long preTime;private static final int step = 2000; // msecsprivate LocationManager locationManager;private boolean status = false;private Button btn;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);Log.i(TAG, "onCreate(Bundle savedInstanceState)");btn = (Button) findViewById(R.id.beginBtn);btn.setOnClickListener(new OnClickListener(){public void onClick(View v){if (!status){status = true;startLoactionService();btn.setText("点击这里停止");}else{status = false;stopLocationService();btn.setText("点击这里开始");}}});}public void startLoactionService(){String serviceName = Context.LOCATION_SERVICE;locationManager = (LocationManager) getSystemService(serviceName);// String provider = LocationManager.GPS_PROVIDER;Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_FINE);criteria.setAltitudeRequired(false);criteria.setBearingRequired(false);criteria.setCostAllowed(true);criteria.setPowerRequirement(Criteria.POWER_LOW);String provider = locationManager.getBestProvider(criteria, true);Log.i(TAG, "we choose:"+provider);Location location = locationManager.getLastKnownLocation(provider);Log.i(TAG, "we :"+location);preTime = System.currentTimeMillis();updateWithNewLocation(location);locationManager.requestLocationUpdates(provider, step, 0,        locationListener);}public void stopLocationService(){if (locationManager != null){locationManager.removeUpdates(locationListener);}}private final LocationListener locationListener = new LocationListener(){public void onLocationChanged(Location location){Log.i(TAG, "onLocationChanged(Location location)");updateWithNewLocation(location);}public void onProviderDisabled(String provider){updateWithNewLocation(null);}public void onProviderEnabled(String provider){}public void onStatusChanged(String provider, int status, Bundle extras){}};private void updateWithNewLocation(Location location){Log.i(TAG, "updateWithNewLocation(Location location)");String latLongString;TextView myLocationText;myLocationText = (TextView) findViewById(R.id.result);if (location != null){double lat = location.getLatitude();double lng = location.getLongitude();long subTime = (System.currentTimeMillis() - preTime) / 1000;float v = (subTime == 0 || preLocation == null) ? 0 : (preLocation        .distanceTo(location) / subTime);latLongString = "纬度:" + lat + " 经度:" + lng + " 速度:" + v + " m/s , "        + v * 3.6 + " km/h";preLocation = location;preTime = System.currentTimeMillis();}else{latLongString = "无法获取地理信息";}myLocationText.setText(System.currentTimeMillis() + ": "        + latLongString);}}

xml代码:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    >    <Button android:id="@+id/beginBtn"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="start"    /><TextView  android:id="@+id/result"    android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="data"    /></LinearLayout>


加上权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

GPS数据模拟方法:

打开DDMS视图,找到Emulator Control,在Manual里面选择Sexagesimal,输入Longitude和Latitude,点击Send.至此完成测试.


更多相关文章

  1. android典型代码系列(二十五)------popupwindow的使用
  2. Android模仿jquery异步请求
  3. Android版本更新代码
  4. Android代码实现关机重启
  5. android ViewPager 指示器 PageIndicator
  6. Android(安卓)从网上获取网页代码(未解析)
  7. 在android里面调用javascript代码
  8. Android(安卓)- ImageView 加边框 实例
  9. Android重启应用程序代码

随机推荐

  1. android 截屏的三种方法
  2. Android(安卓)USB Host与HID通讯(二)
  3. Unable to get buffer of resource asset
  4. android中handler 轮询数据变化 使用Weak
  5. 在AMD64 位ubuntu8上android source code
  6. apt-get -f install 修复失败!
  7. Android(安卓)如何解析Xml字符串
  8. Android原生上下滚动控件ViewFlipper的点
  9. 使用ViewServer让Android真机可用Hierarc
  10. Android之浅谈activity生命周期