Android携帯電話の位置付け
6119 ワード
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);
}