现在我正在使用基于位置的应用程序,我的问题是该位置未在真实设备上更新。那就是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
}
}
请帮帮我。
答案 0 :(得分:1)
我刚使用NETWORK_PROVIDER
代替GPS_PROVIDER
。因为GPS并非在所有位置都可用。就我而言,它完美地解决了我的问题。我们只需要在手机中建立有效的互联网连接。