Как получить GPS-координаты пользователя, нажав кнопку? - PullRequest
0 голосов
/ 04 июля 2011

Здравствуйте, у меня возникла проблема здесь

У меня есть форма добавления и редактирования для моих баз данных точек зрения, у нее есть два EditText для координат, для Долготы и Широты, и есть кнопка, чтобы получитьтекущие координаты, если я нажимаю кнопку, два EditTexts заполнены координатами, и пользователь может продолжить вставлять или редактировать данные

мой код, возвращающий исключение java.nullPointerException, я не знаю, почему ...

это мой код:

btn_getkoor.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                try{

                    LocationListener gpsLocation = new MyLocationListener();
                    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, gpsLocation); //new MyLocationListener());
                    Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

                    final TextView error_text = (TextView) findViewById(R.id.error_text);

                    if (location != null) {

                        EditText et_longitude = (EditText) findViewById(R.id.et_longitude);
                        EditText et_latitude = (EditText) findViewById(R.id.et_latitude);

                        et_longitude.setText(""+location.getLongitude());   // longitude textview
                        et_latitude.setText(""+location.getLatitude());     //latitude textview

                        locationManager.removeUpdates((LocationListener) location);
                        locationManager = null;

                    }else{
                        toastkeun("Terjadi Kesalahan dalam pengambilan koordinat");             //toast function
                        error_text.setText("Terjadi Kesalahan dalam pengambilan koordinat");    //textview for showing errors
                    }
                }catch(Exception e){
                    toastkeun(e.toString());
                }

            }
        });

Любое решение?

Я уже установил файл манифеста FYI

Ответы [ 2 ]

0 голосов
/ 04 июля 2011
     LocationManager locationManager;
    String bestProvider;
    String LOCATION_SERVICE="location" ; 
    locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        //criteria.setAccuracy();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);  // More accurate, GPS fix.
        bestProvider = locationManager.getBestProvider(criteria,true);
    location location = locationManager.getLastKnownLocation(bestProvider);
if (location != null) {

                        EditText et_longitude = (EditText) findViewById(R.id.et_longitude);
                        EditText et_latitude = (EditText) findViewById(R.id.et_latitude);

                        et_longitude.setText(""+location.getLongitude());   // longitude textview
                        et_latitude.setText(""+location.getLatitude());     //latitude textview

                       // locationManager.removeUpdates((LocationListener) location);
                        locationManager = null;

                    }else{
                        toastkeun("Terjadi Kesalahan dalam pengambilan koordinat");             //toast function
                        error_text.setText("Terjadi Kesalahan dalam pengambilan koordinat");    //textview for showing errors
                    }
0 голосов
/ 04 июля 2011

Сложно сказать по вашему коду:

Если вы этого не сделали, вот код:

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);     
...