现在我正在使用基于位置的应用程序,我的问题是位置没有在真实设备上更新。那是onLocationChanged
在真实设备上不起作用。但在模拟器上很好。
locmngr=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
loclis =new MyLocationListner();
our_location=locmngr.getLastKnownLocation(LocationManager.GPS_PROVIDER);
locmngr.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0,loclis);
public class MyLocationListner implements LocationListener{
@Override
public void onLocationChanged(Location location)
{
// TODO Auto-generated method stub
L1=location.getLatitude();
L2=location.getLongitude();
String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
// Toast.makeText(getApplicationContext(), currentDateTimeString, Toast.LENGTH_SHORT).show();
DatabaseHandlerActivity db = new DatabaseHandlerActivity(getApplicationContext());
db.addLocation(new Locations_viewer(L1.toString(), L2.toString(), currentDateTimeString));
Toast.makeText(getApplicationContext(), "New Location "+"Latitude ="+L1+
" Longitude ="+L2, Toast.LENGTH_LONG).show();
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = df.format(c.getTime());
ParseUser.getCurrentUser().put("Latitude", L1.toString());
ParseUser.getCurrentUser().put("Longitude", L2.toString());
ParseUser.getCurrentUser().put("Time", formattedDate);
ParseUser.getCurrentUser().saveInBackground();
// Toast.makeText(getApplicationContext(), "Latitude ="+L1, Toast.LENGTH_LONG).show();
// Toast.makeText(getApplicationContext(), "Longitude ="+L2, Toast.LENGTH_LONG).show();
}
@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
}
}
请帮我。