package com.gps;

import android.app.Activity;
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;

public class Gps extends Activity implements LocationListener {

private LocationManager lm;
private Button btn;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

lm = (LocationManager) getSystemService(LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L,1.0f, this);
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
if (!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Log.d("===============", "gps not opened");
} else {
Location bestLoc = getBestLocation(lm);
if(bestLoc == null){
Log.d("=============", "gps opened, but can not get gps location");
}else {
Log.d("=====getLatitude=======", String.valueOf(bestLoc.getLatitude()));
Log.d("======getLongitude======", String.valueOf(bestLoc.getLongitude()));
}
}

}

private Location getBestLocation(LocationManager locationManager) {
Location gpsLoc = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location networkLoc = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Location bestLoc = null;
if (gpsLoc != null && networkLoc != null) {
// if gps loc is more than 5 min older than network loc
bestLoc = networkLoc.getTime() - 5 * 60 * 1000 > gpsLoc
.getTime() ? networkLoc : gpsLoc;
} else if (gpsLoc != null) {
bestLoc = gpsLoc;
} else if (networkLoc != null) {
bestLoc = networkLoc;
}
return bestLoc;
}

});
}

@Override
public void onLocationChanged(Location paramLocation) {
// TODO Auto-generated method stub

}

@Override
public void onProviderDisabled(String paramString) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String paramString) {
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String paramString, int paramInt,
Bundle paramBundle) {
// TODO Auto-generated method stub

}
}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. Android开发的未来发展方向,难道android真
  2. Android日记之2012\01\13
  3. Android绘图之LinearGradient线性渐变(9)
  4. 阿里云 centos6.3 64位机器安装android s
  5. android涔婮NI寮€鍙戞楠ゆ€荤粨
  6. Android,开源还是封闭?
  7. 比较详细的handle机制
  8. Android开发者应该深入学习的10个开源应
  9. 部署应用程序到Android手机
  10. Android入门教程(三)之----------> 导入