2. Application add (Users Liberary) 選 com.google.android.maps
3. 我們增加了android.permission.ACCESS_FINE_LOCATION的權限,主要是GPS的位置提供
除了FINE另外還有COARSE,可以透過其他的服務來取得位置(network: 3G or Wifi)
GDD03.java - Activity主體
package COM.TQC.GDD03; import com.google.android.maps.GeoPoint; import android.app.Activity; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.widget.TextView; public class GDD03 extends Activity implements LocationListener { public String strLocationPrivider = ""; public TextView mTextView01; LocationManager lm; /** 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); mTextView01 = (TextView)findViewById(R.id.myTextView1); getLocationPrivider(); } public void getLocationPrivider() { try { Criteria mCriteria01 = new Criteria(); mCriteria01.setAccuracy(Criteria.ACCURACY_FINE); mCriteria01.setAltitudeRequired(false); mCriteria01.setBearingRequired(false); mCriteria01.setCostAllowed(true); mCriteria01.setPowerRequirement(Criteria.POWER_LOW); } catch(Exception e) { e.printStackTrace(); } } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); strLocationPrivider = lm.getBestProvider(new Criteria(), true); lm.requestLocationUpdates(strLocationPrivider, 5000, 0, this); Location l = lm.getLastKnownLocation(strLocationPrivider); if(l != null ) onLocationChanged(l); } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub double la = location.getLatitude()*1E6, lo= location.getLongitude()*1E6; GeoPoint gp = new GeoPoint((int)la, (int)lo); if(gp.getLatitudeE6()/1E6 <= 25.051578 && gp.getLatitudeE6()/1E6 >= 25.051201 && gp.getLongitudeE6()/1E6 >= 121.549197 && gp.getLongitudeE6()/1E6 <= 121.549666) mTextView01.setText(getString(R.string.str_inside)); else mTextView01.setText(getString(R.string.str_outside)); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } }
沒有留言:
張貼留言