När jag kör mitt program i emulatorn så verkar inte GPSen fungera. jag testat att mata den både från telnet och från DDMS med koordinater. satellitikonen syns uppe till höger. men när jag kör så får jag ut 0/0 för lat/long ifrån min kod.
Har dessa i mitt manifest.xml
Kod:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
samt här är koden:
Kod:
public class ProgressScreen extends Activity implements Runnable {
private ProgressDialog pd;
private LocationManager lm;
private LocationListener locationListener;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
Location loc = lm.getLastKnownLocation(lm.getBestProvider(criteria,
true));
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10,
locationListener);
((GlobalData) getApplication()).setMyLocation(new GeoPoint(
(int) (loc.getLatitude() * 1E6),
(int) (loc.getLongitude() * 1E6)));
pd = ProgressDialog.show(ProgressScreen.this, "Information",
"Hämtar restauranger i din närhet.", true, false);
Thread thread = new Thread(this);
thread.start();
}
public void run() {
List<Restaurang> restauranger = RestaurantProvider
.getRestaurantsAtMyLocation(((GlobalData) getApplication())
.getMyLocation());
((GlobalData) getApplication()).setRestaurants(restauranger);
Intent mainIntent = new Intent(ProgressScreen.this, Main.class);
ProgressScreen.this.startActivity(mainIntent);
ProgressScreen.this.finish();
pd.dismiss();
}
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
((GlobalData) getApplication()).setMyLocation(new GeoPoint(
(int) (loc.getLatitude() * 1E6), (int) (loc
.getLongitude() * 1E6)));
}
@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
}
}
}