0

私のアプリケーションでは、ユーザーが自分のローカリゼーションを知ることができるようにしたいと考えています...しかし、GPS とネットワーク プロバイダーの両方を実装したいと考えています...GPS プロバイダーは常に利用できるとは限らないため...私はエミュレーターを使用し、私は私のコードが機能するかどうかわからない...

これは私のコードソースです: (事前に感謝)

 locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
            LocationListener mlocListener = new MyLocationListener();
            locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
           locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener);

            Criteria criteria = new Criteria();
            provider = locationManager.getBestProvider(criteria, false);
            location = locationManager.getLastKnownLocation(provider);

            if(location!=null)
            {
                mylat=location.getLatitude();
                mylong=location.getLongitude();
            }

そして、これはクラス myLocationlistener です:

public class MyLocationListener implements LocationListener

        {

        @Override

        public void onLocationChanged(Location loc)

        {

            Log.i("location", "lat :"+loc.getLatitude());
            mylat=loc.getLatitude();
            mylong=loc.getLongitude();

            for(int i=0; i<results.size(); i++)
            {


                gare g=results.get(i);


            }

            list.invalidateViews();


        }


        @Override

        public void onProviderDisabled(String provider)

        {



        AlertDialog alertDialog = new AlertDialog.Builder(liste_activity.this).create();
        alertDialog.setTitle("Le GPS est désactivé");
        alertDialog.setMessage(" activez le GPS");
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
          public void onClick(DialogInterface dialog, int which) {


        } }); 
        alertDialog.show();


        }


        @Override

        public void onProviderEnabled(String provider)

        {



        }


        @Override

        public void onStatusChanged(String provider, int status, Bundle extras)

        {


        }
    }
4

1 に答える 1

0

は、私にはよく見えますよ。私は通常、#requestLocationUpdates() を最初に可用性をチェックする条件でラップします。

if (this.mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
    this.mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
}

if (this.mLocationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
    this.mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
}
于 2013-01-17T18:35:08.503 に答える