<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
1 //邻近警告 2 public class MainActivity extends ActionBarActivity { 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.fragment_main); 8 LocationManager lManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 9 double longitude = 123.427109; 10 double latitude = 41.764998; 11 float radius = 2000; 12 Intent intent = new Intent(this, PromimityAlterRecivery.class); 13 PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 1, 14 intent, 0); 15 lManager.addProximityAlert(latitude, longitude, radius, -1, 16 pendingIntent); 17 18 } 19 20 }
1 public class PromimityAlterRecivery extends BroadcastReceiver { 2 3 @Override 4 public void onReceive(Context context, Intent intent) { 5 // 获取是否进入的指定区域 6 boolean isEnter = intent.getBooleanExtra( 7 LocationManager.KEY_PROXIMITY_ENTERING, false); 8 if (isEnter) { 9 Toast.makeText(context, "你已经进入指定区域", 0).show(); 10 } else { 11 Toast.makeText(context, "你已经进入指定区域然后出去了", 0).show(); 12 } 13 } 14 }
//---------------------------根据经纬度测两点之间的距离---------------------------------------------------------
1 //根据经纬度测两点之间的距离 2 public class MainActivity extends ActionBarActivity { 3 EditText mEditText; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.fragment_main); 9 mEditText = (EditText) findViewById(R.id.editText1); 10 final float[] result = new float[3]; 11 Location.distanceBetween(20.123, 30.05644, 30.124, 40.543, result); 12 mEditText.setText(String.valueOf(result[0] + "米")); 13 14 } 15 16 }
//---------------------------实时获取GPS定位数据----------------------------------------------------
1 //实时获取GPS定位数据 2 public class MainActivity extends ActionBarActivity { 3 LocationManager mlManager; 4 EditText mEditText; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.fragment_main); 10 mEditText = (EditText) findViewById(R.id.editText1); 11 mlManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 12 // 从GPS获取最近的定位信息 13 Location location = mlManager 14 .getLastKnownLocation(LocationManager.GPS_PROVIDER); 15 16 undateView(location); 17 mlManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 8, 18 new LocationListener() { 19 20 @Override 21 public void onStatusChanged(String provider, int status, 22 Bundle extras) { 23 // TODO Auto-generated method stub 24 25 } 26 27 @Override 28 public void onProviderEnabled(String provider) { 29 // 当GPSlocationProvider可用时,更新位置 30 31 undateView(mlManager.getLastKnownLocation(provider)); 32 33 } 34 35 @Override 36 public void onProviderDisabled(String provider) { 37 // TODO Auto-generated method stub 38 39 } 40 41 @Override 42 public void onLocationChanged(Location location) { 43 // 当GPS位置信息发生变化,更新位置 44 undateView(location); 45 46 } 47 }); 48 49 } 50 51 // 用来更新EditText中的信息 52 private void undateView(Location newlocation) { 53 // TODO Auto-generated method stub 54 if (newlocation != null) { 55 StringBuilder sBuilder = new StringBuilder(); 56 sBuilder.append("实时的位置信息: "); 57 sBuilder.append(" 经度"); 58 sBuilder.append(newlocation.getLongitude()); 59 sBuilder.append(" 纬度"); 60 sBuilder.append(newlocation.getLatitude()); 61 sBuilder.append(" 高度"); 62 sBuilder.append(newlocation.getAltitude()); 63 sBuilder.append(" 速度"); 64 sBuilder.append(newlocation.getSpeed()); 65 sBuilder.append(" 方向"); 66 sBuilder.append(newlocation.getBearing()); 67 mEditText.setText(sBuilder.toString()); 68 } 69 } 70 71 }