ОБНОВЛЕНИЕ 2: проблема решена
после того, как я был снаружи и получил сигнал с помощью GPS_PROVIDER, теперь у меня больше нет проблем с определением местоположения с помощью NETWORK_PROVIDER....
Я до сих пор не знаю, почему приложение Google Maps могло получить исправление до того, как я это сделал, а мое приложение - нет, но теперь оно работает (даже после перезапуска вкладки галактики), и я отчасти счастлив; )
ОБНОВЛЕНИЕ: название темы изменено, см. редактирование внизу сообщения.
Я только что попробовал это руководство ( http://www.firstdroid.com/2010/04/29/android-development-using-gps-to-get-current-location-2/) для получения GPS-местоположения в галактике вкладка, но я не получаю никакого местоположения....
Я уже пробовал использовать другого провайдера, но это совсем не помогает (пробовал GPS_PROVIDER, NETWORK_PROVIDER, PASSIVE_PROVIDER).
странно то, что с официальным приложением Google Maps я получаю местоположение. :\
разрешения в AndroidManifest.xml устанавливаются следующим образом:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Кто-нибудь знает, почему у моего приложения нет местоположения?
редактировать:
с поставщиком GPS я получаю исправление, когда я снаружи. но я не понимаю, почему у меня нет местоположения с NETWORK_PROVIDER или PASSIVE_PROVIDER.
какой провайдер использует приложение Google Maps, если GPS недоступен?
редактировать 2:
код (из учебника выше с небольшими изменениями):
package Firstdroid.Tutorial.Gps;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.Toast;
public class UseGps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Toast.makeText(getApplicationContext(), "Application started", Toast.LENGTH_SHORT).show();
/* Use the LocationManager class to obtain GPS locations */
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
// here I choose the location provider:
mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener); // <---
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
loc.getLatitude();
loc.getLongitude();
String Text = "My current location is: " +
"Latitude = " + loc.getLatitude() +
"Longitude = " + loc.getLongitude() + " (PROVIDER: " + loc.getProvider() + ")";
Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderDisabled(String provider) {
Toast.makeText(getApplicationContext(), "Gps Disabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onProviderEnabled(String provider) {
Toast.makeText(getApplicationContext(),
"Gps Enabled", Toast.LENGTH_SHORT).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}/* End of Class MyLocationListener */
}/* End of UseGps Activity */