Android携帯電話の位置付け

6119 ワード

android携帯電話の位置決め、コードだけ、すでにlocationListenerインタフェースを実現しました
    private String providerName;

    LocationManager lm;



    @Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        init();

    }



    private void init()

    {

        //         

        lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); //     

        // List<String> lp = lm.getAllProviders();//         

        Criteria criteria = new Criteria();//       

        criteria.setAccuracy(Criteria.ACCURACY_FINE);//     ( )

        // criteria.setAltitudeRequired(false);//         

        // criteria.setBearingRequired(false);//         

        // criteria.setCostAllowed(true);//   

        // criteria.setPowerRequirement(Criteria.POWER_LOW);//      

        // criteria.setSpeedRequired(false);//         

        providerName = lm.getBestProvider(criteria, true);

        Location location = lm.getLastKnownLocation(providerName);

        if (location != null)

        {

            Member.latitude = location.getLatitude() * 1e6;

            Member.longitude = location.getLongitude() * 1e6;

        } else

        {

            System.out.println("       ");

        }



    }



    @Override

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

    { //  Provider      、                     。

        Log.v("gprs", "status");

    }



    @Override

    public void onProviderEnabled(String provider)

    { //       

        Log.v("gprs", "enabled");

    }



    @Override

    public void onProviderDisabled(String provider)

    {

        //               

        Log.v("gprs", "disabled");

    }



    @Override

    public void onLocationChanged(Location location)

    {

        //        

        Member.latitude = location.getLatitude() * 1e6;

        Member.longitude = location.getLongitude() * 1e6;

    }



    @Override

    protected void onResume()

    {

        //

        super.onResume();

        //  5  10m      

        lm.requestLocationUpdates(providerName, 5000, 10, this);

    }



    @Override

    protected void onPause()

    {

        //          

        super.onPause();

        lm.removeUpdates(this);

    }