Совместное использование местоположения пользователя - PullRequest
0 голосов
/ 03 марта 2019

Я занимаюсь разработкой приложения для Android, в котором есть один модуль, называемый разделом местоположения пользователя. Хотя я могу поделиться местоположением в виде сообщения, оно фактически не показывает никаких координат, то есть широты или долготы.Помогите!!Спасибо, я заранее.

Всякий раз, когда я пытаюсь поделиться местоположением как сообщением, я получаю "http://maps.google.com/maps?daddr=0.0.0.0"

с помощью менеджера местоположений.

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
                @Override
                public void onLocationChanged(Location location) {
                    double latitude = location.getLatitude();
                    double longitude = location.getLongitude();
                    LatLng latlng = new LatLng(latitude,longitude);


                    Geocoder geocoder = new Geocoder(getApplicationContext());
                    try {
                        List<Address> addressList = geocoder.getFromLocation(latitude,longitude,1);
                        String str = addressList.get(0).getLocality()+",";
                        str += addressList.get(0).getCountryName();
                        mMap.addMarker(new MarkerOptions().position(latlng).title(str));
                        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng,10.2f));
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }

Я использую пункт менюформат в панели инструментов для обмена

     public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.item1:
                Toast.makeText(this, "Sharing Location", Toast.LENGTH_SHORT).show();
                String uri = "http://maps.google.com/maps?daddr=" +latitude+","+longitude;
                Intent share = new Intent(Intent.ACTION_SEND);
                share.setType("text/plain");
                share.putExtra(Intent.EXTRA_TEXT,uri);
                startActivity(Intent.createChooser(share,"Share Location Via"));
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

1 Ответ

0 голосов
/ 03 марта 2019

Местоположение не было обновлено, поэтому по умолчанию оно инициализируется 0.0.0.0.

Таким образом, вы должны получить последнее местоположение:
Добавить эти строки

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double latitude = location.getLatitude();
double longitude = location.getLongitude();

Перед

String uri = "http://maps.google.com/maps?daddr=" +latitude+","+longitude;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...