onLocationChanged无法在真实设备上运行

时间:2013-04-09 09:00:15

标签: android location locationmanager

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

        }
    }

请帮帮我。

1 个答案:

答案 0 :(得分:1)

我刚使用NETWORK_PROVIDER代替GPS_PROVIDER。因为GPS并非在所有位置都可用。就我而言,它完美地解决了我的问题。我们只需要在手机中建立有效的互联网连接。