android 手机定位
android手机定位,只有代码,已经实现locationListener接口
private String providerName; LocationManager lm; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); init(); } private void init() { // 获取当前用户位置 lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 定位服务 // List<String> lp = lm.getAllProviders();// 得到所有定位方式 Criteria criteria = new Criteria();// 定位功能标准 criteria.setAccuracy(Criteria.ACCURACY_FINE);// 精度要求(高) // criteria.setAltitudeRequired(false);// 是否返回海拔信息 // criteria.setBearingRequired(false);// 是否返回方位信息 // criteria.setCostAllowed(true);// 收费 // criteria.setPowerRequirement(Criteria.POWER_LOW);// 电量要求低 // criteria.setSpeedRequired(false);// 是否返回速度信息 providerName = lm.getBestProvider(criteria, true); Location location = lm.getLastKnownLocation(providerName); if (location != null) { Member.latitude = location.getLatitude() * 1e6; Member.longitude = location.getLongitude() * 1e6; } else { System.out.println("请检查网络连接"); } } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // 在Provider的状态在可用、暂时不可用和无服务三个状态直接切换时被调用。 Log.v("gprs", "status"); } @Override public void onProviderEnabled(String provider) { // 定位功能开启 Log.v("gprs", "enabled"); } @Override public void onProviderDisabled(String provider) { // 使用中的定位方式关闭时的事件 Log.v("gprs", "disabled"); } @Override public void onLocationChanged(Location location) { // 位置发生改变时 Member.latitude = location.getLatitude() * 1e6; Member.longitude = location.getLongitude() * 1e6; } @Override protected void onResume() { // 再次调用时,更新经纬度 super.onResume(); // 每5秒或10m进行一次定位 lm.requestLocationUpdates(providerName, 5000, 10, this); } @Override protected void onPause() { // 切换页面时停止服务 super.onPause(); lm.removeUpdates(this); }
谁走进你的生命,是由命运决定,谁停留在你的生命中,却由你自己决定