1

现在我正在使用基于位置的应用程序,我的问题是位置没有在真实设备上更新。那是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

        }
    }

请帮我。

4

1 回答 1

1

我只是使用NETWORK_PROVIDER而不是GPS_PROVIDER. 因为 GPS 并非在所有位置都可用。就我而言,它完美地解决了我的问题。我们只需要在我们的手机中有一个活跃的互联网连接。

于 2013-08-03T14:51:06.787 回答