Beim Abrufen des Breiten- und Längengrads auf dem Gerät wird in logcat der Wert null angezeigt.Gerät Längen- und Breitengrad mit Null erhalten
Aber im genymotion Emulator bekomme ich GPS-Breiten- und Längengrad-Position, wenn ich gps auf der rechten Seite von Genymotion Emulator einschalten.
Ich weiß nicht Warum ich den geografischen Längen- und Breitengrad im Gerät nicht ermitteln kann.
Unten habe ich den relevanten Code veröffentlicht.
Logcat:
E:/ gpsLocation: null
FragmentDiscovery.java:
AppLocationService appLocationService;
appLocationService = new AppLocationService(getActivity());
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getLocation();
Log.e("GET_USER_LAT_STR", ""+GET_USER_LAT_STR);
Log.e("GET_USER_LON_STR", ""+GET_USER_LON_STR);
editor.putString("GetLat", GET_USER_LAT_STR);
editor.putString("GetLon", GET_USER_LON_STR);
editor.commit();
Fragment fragment = new CardsFragment();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container_body, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
// Inflate the layout for this fragment
return rootView;
}
void getLocation(){
Location gpsLocation = appLocationService
.getLocation(LocationManager.GPS_PROVIDER);
Log.e("gpsLocation", ""+gpsLocation);
if (gpsLocation != null) {
double latitude = gpsLocation.getLatitude();
double longitude = gpsLocation.getLongitude();
GET_USER_LAT_STR = String.valueOf(latitude);
GET_USER_LON_STR = String.valueOf(longitude);
} else {
showSettingsAlert("GPS");
}
}
public void showSettingsAlert(String provider) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity());
alertDialog.setTitle(provider + " SETTINGS");
alertDialog
.setMessage(provider + " is not enabled! Want to go to settings menu?");
alertDialog.setPositiveButton("Settings",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(
Settings.ACTION_LOCATION_SOURCE_SETTINGS);
getActivity().startActivity(intent);
}
});
alertDialog.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertDialog.show();
}
Edit:
In Gerät es nicht immer einfach gpslocation.Instead wiederum auf GPS zeigt Windows in Einstellungen. Aber ich hatte eine lready gps eingeschaltet
Wenn Sie versuchen, GPS zu lokalisieren, dauert es einige Male, bis mindestens drei Satelliten repariert sind. Die Zeit ist ungefähr 20-30 Sekunden oder hängt mehr von der Bewegung Ihres Geräts ab. –
@MD Gibt es alternative Möglichkeiten, dieses Problem zu lösen? Aber im genymotion Emulator dauerte es eine Sekunde, um den Breiten- und Längengrad zu zeigen. Aber im Gerät wird es nicht gpslocation.ing einfach nur das Einschalten gps.Aber ich hatte bereits eingeschaltet gps – Steve
Verwenden Sie Google Location Services für den Standort zu bekommen. –