ユーザーがアプリを開くたびに、ユーザーの現在地を取得しているかどうかを確認します。そうでない場合、アプリは彼に位置情報を有効にしてからアプリに戻るように求めLocationManager
ます。問題: 特定の携帯電話では、位置情報が有効になっていてユーザーがアプリに戻った後でも、位置情報がまだnull
. そのため、ユーザーはループに陥っています。場所がまだ null であるのはなぜですか? 私に何ができる?
String locationContext = Context.LOCATION_SERVICE;
locationManager = (LocationManager) getSystemService(locationContext);
Location location = locationManager.getLastKnownLocation(locationProvider);
if (location != null) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
final String lat = String.valueOf(latitude);
final String lon = String.valueOf(longitude);
System.out.println("Localisation: " + lat + " " + lon);
SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
String id = preferences.getString("id", null);
new sendLocation().execute(id, lat, lon);
} else {
System.out.println("NO LOCATION!!");
AlertDialog.Builder alert = new AlertDialog.Builder(Home.this);
alert.setTitle("Get started");
alert.setMessage("We need your location to detect places nearby. Please enable -Wireless Networks- in your location settings to get started.");
// Set an EditText view to get user input
final TextView input = new TextView(Home.this);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
startActivity(new Intent(
android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert.show();
}