デバイスが衛星からデータを取得しているかどうかを確認したいと思います。現在地を取得したら、何かをします。それ以外の場合、まだ座標を取得していない場合は、メッセージをトーストしたいと思います。すでに座標を持っているかどうかはどうすればわかりますか?
GeoPoint h = null;
double latitude = 10, longitude = 10;
public void onClick(View v)
{
switch (v.getId())
{
case R.id.get_GPS:
final LocationManager manager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );
if(isInternetOn() && manager.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
//I want here to check, if I get latitude and longitude values, which differ from 10 x 10, I go to my map, otherwise I say, that there's no information received from satellite.
/*
h = new GeoPoint((int) (latitude * 1000000), (int) (longitude * 1000000));
if(h.getLatitudeE6()==h.getLongitudeE6() && h.getLongitudeE6()==10000000)
{
Toast.makeText(this, "No information received from satellite yet.", Toast.LENGTH_LONG).show();
break;
}
*/
Intent i = new Intent (this,getGPS.class);
startActivity(i);
}
else
{
if(!isInternetOn() && !manager.isProviderEnabled( LocationManager.GPS_PROVIDER))
{
buildAlertMessageNoGpsNoInternet();
break;
}
if(!isInternetOn())
{
buildAlertMessageNoInternet();
break;
}
if(!manager.isProviderEnabled( LocationManager.GPS_PROVIDER))
{
buildAlertMessageNoGps();
break;
}
}
break;
case R.id.about_button:
Intent j = new Intent(this, About.class);
startActivity(j);
break;
case R.id.exit_button:
this.moveTaskToBack(true);
break;
}
}
サム、「if」でNullPointerExceptionが発生します。
if(manager.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
Location location = manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
/*Here ->*/if(location.getTime() > ((Calendar.getInstance().getTimeInMillis()) - 10000))
{
Intent i = new Intent (this, getGPS.class);
startActivity(i);
}
else
{
// Wait for new location
LocationListener locationListener = new myLocationListener();
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,locationListener);
}
}
Logcat
05-05 11:42:49.444:E / AndroidRuntime(300):java.lang.NullPointerException