Skip to content

Latest commit

 

History

History
79 lines (63 loc) · 1.95 KB

获取位置(LocationManager).md

File metadata and controls

79 lines (63 loc) · 1.95 KB

获取位置(LocationManager)

  1. 需要申请权限

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  2. 代码

    public class TestgpsActivity extends Activity {
    	private LocationManager lm;
    	private MyListener listener;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		lm = (LocationManager) getSystemService(LOCATION_SERVICE);
    
    		Criteria criteria = new Criteria();
    		criteria.setAccuracy(Criteria.ACCURACY_FINE);
    		criteria.setCostAllowed(true);
    		criteria.setPowerRequirement(Criteria.POWER_HIGH);
    		criteria.setSpeedRequired(true);
    		String provider = lm.getBestProvider(criteria, true);
    		//第一个参数 位置提供者 第二个参数 最短更新时间 第三参数 最短的更新的距离
    		listener = new MyListener();
    		lm.requestLocationUpdates(provider, 0, 0, listener);
    
    	}
    	@Override
    	protected void onDestroy() {
    		lm.removeUpdates(listener);
    		super.onDestroy();
    	}
    
    	private class MyListener implements LocationListener{
    
    		/**
    		 * 当位置改变的时候
    		 */
    		@Override
    		public void onLocationChanged(Location location) {
    			float accuracy = location.getAccuracy();
    			double wlong = location.getLatitude(); //纬度
    			double jlong = location.getLongitude(); //经度
    
    			TextView tv = new TextView(getApplicationContext());
    			tv.setText("经度:"+jlong+"\n"+"纬度:"+wlong+"\n"+ accuracy);
    			setContentView(tv);
    
    		}
    		/**
    		 * 某一个位置提供者的状态发生改变的时候调用的方法
    		 */
    		@Override
    		public void onStatusChanged(String provider, int status, Bundle extras) {
    
    		}
    
    		@Override
    		public void onProviderEnabled(String provider) {
    
    		}
    
    		@Override
    		public void onProviderDisabled(String provider) {
    
    		}
    	}
    }