Есть ли способ получить информацию без отображения карты? Я хочу получить координаты своего места во время работы с другой деятельностью. tnx много.получить широту и долготу в Android без отображения карты
ответ
использовать следующий код. Он работает на меня.
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
public class GPSTracker extends Service implements LocationListener{
private Context context;
boolean isGPSEnabled = false;
boolean isNetworkEnabled = false;
boolean canGetLocation = false;
Location location;
double latitude,longitude;
LocationManager locationManager;
AlertDialogManager am = new AlertDialogManager();
public GPSTracker(Context context){
this.context = context;
getLocation();
}
private Location getLocation() {
// TODO Auto-generated method stub
try{
locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkEnabled = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled){
} else {
this.canGetLocation = true;
if (isNetworkEnabled){
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 3, this);
if (locationManager != null){
location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null){
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
if (isGPSEnabled){
if (location == null){
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 3, this);
if (locationManager != null){
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null){
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
} else {
showAlertDialog();
}
}
}catch(Exception e){
e.printStackTrace();
}
return location;
}
public void showSettingsAlert(){
AlertDialog.Builder alertDialog = new AlertDialog.Builder(GPSTracker.this);
// Setting Dialog Title
alertDialog.setTitle("GPS is settings");
// Setting Dialog Message
alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");
// Setting Icon to Dialog
//alertDialog.setIcon(R.drawable.delete);
// On pressing Settings button
alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
dialog.cancel();
}
});
// on pressing cancel button
alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
public void showAlertDialog(){
am.showAlertDialog(GPSTracker.this, "GPS Setting", "Gps is not enabled. Do you want to enabled it ?", false);
}
public double getLatitude(){
if (location != null){
latitude = location.getLatitude();
}
return latitude;
}
public double getLongitude(){
if (location != null){
longitude = location.getLongitude();
}
return longitude;
}
public boolean canGetLocation(){
return this.canGetLocation;
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
if (location != null){
this.location = location;
}
}
@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
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
И в функции MainActivity
вызова, как показано ниже.
GPSTracker gps = new GPSTracker (this);
double latitude = gps.getLatitude();
double longitude= gps.getLongitude();
tnx dude. это работа для меня тоже –
его мое удовольствие! –
Зачем расширять сервис? – portfoliobuilder
С помощью LocationManager
вы можете получить широчайшие и Ланг:
LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();
Вызов getLastKnownLocation()
не блок - это значит, что будет возвращать null
, если нет позиции в настоящее время доступна - так что вы, вероятно, хотите иметь посмотрите на передачу LocationListener
на requestLocationUpdates()
method вместо этого, что даст вам асинхронные обновления вашего местоположения.
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
longitude = location.getLongitude();
latitude = location.getLatitude();
}
}
lm.requestLocationUpdates(LocationManager.GPS, 2000, 10, locationListener);
Вы должны дать ваше заявление ACCESS_FINE_LOCATION
permission если вы хотите использовать GPS.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Вы также можете добавить ACCESS_COARSE_LOCATION
permission для того, когда GPS не доступен, и выберите поставщика местоположения с getBestProvider()
method.
Используя этот код, способного получить значение широты и долготы и сделать , что перед использованием приложения вы получили разрешение от манифеста для доступа места
if(isGPS) {
Geocoder gc = new Geocoder(getApplicationContext(), Locale.getDefault());
try
{
double lat=location.getLatitude();
double lng=location.getLongitude();
Toast.makeText(getApplicationContext(),lat+"and"+lng, Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
e.printStackTrace();
}
}
else
{
display("GPS not Enabled");
}
Manifest permission
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
- 1. Android: получить долготу и широту
- 2. Как получить долготу и широту с карты?
- 3. Получить широту и долготу для выбора карты
- 4. Как получить долготу и рельефность по адресу без отображения карты
- 5. Невозможно получить долготу и широту в android
- 6. Получить долготу и широту
- 7. Как получить широту и долготу без использования gps в android?
- 8. Карты Google: получить широту и долготу из элемента карты
- 9. Карты Google, не возвращающие долготу и широту
- 10. Как получить широту и долготу?
- 11. (Android) Получить широту и долготу, всегда ноль
- 12. Получить текущую широту и долготу на android
- 13. Невозможно получить широту и долготу
- 14. Получить широту и долготу в mapbox.js
- 15. Карты Firebase, получающие широту и долготу
- 16. Android: Как получить широту и долготу без пакета GMS
- 17. Открытые карты Apple, пройдя широту и долготу
- 18. Как получить широту и долготу
- 19. Как получить широту и долготу с карты в java
- 20. Получить широту, долготу с адреса в Android
- 21. Как «хранить» широту и долготу в Android?
- 22. Как получить текущую широту и долготу с карты google
- 23. Как получить широту и долготу центра карты google
- 24. Получить широту и долготу верхнего левого угла карты Bing
- 25. Карты Google: получить широту и долготу ближайшей станции метро?
- 26. Как получить долготу и широту по адресу
- 27. Как получить широту и долготу без использования GPS?
- 28. Как получить широту и долготу с карты google?
- 29. получить широту и долготу от имени города
- 30. Как связать широту и долготу в android?
да, вы не должны использовать карту, чтобы получить долготу и широту – JRowan
же вопрос здесь с anwser http://stackoverflow.com/questions/2227292/how-to-get -latitude-and-long-of-the-mobiledevice-in-android –
Ссылка, упомянутая выше, дает лучший ответ. Просто добавьте его, исходя из вашего требования. вам нужно выбрать, сколько минут раз, вам нужна информация о местоположении. Причина в том, что прослушиватели больше заряжают аккумулятор. Итак, выберите сценарий соответствующим образом. – Prem