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
}
}
沒有留言:
張貼留言