Android FusedLocationProviderClient проблема - PullRequest
0 голосов
/ 11 марта 2020

Я следую учебному пособию, однако оно довольно старое и использует устаревший googleApiClient. Странно, однако, когда я использую

implementation 'com.google.android.gms:play-services-maps:17.0.0' 
implementation 'com.google.android.gms:play-services-location:17.0.0' 

Это работает как следует, отображая местоположение на карте. Я предполагал, что это не будет работать, и при отладке, прежде чем он не будет собираться. Я попытался реализовать новый способ, используя версию обновления, в соответствии с которой fusedLocationApi не включен. Прилагаются рабочая версия с fusedLocationApi & googleClientApi и более новый код, который создает, но не показывает местоположение на карте при сборке приложения.

Может быть, в обновленном коде чего-то не хватает, из-за чего не отображается местоположение для отображения на карте ??

Я новичок в Android, если вам нужна помощь:)

Старая рабочая версия - https://pastebin.com/VG4AUJrv

Обновленная не рабочая версия - https://pastebin.com/xa674c5f

1 Ответ

1 голос
/ 11 марта 2020
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
        {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)
            {
                // add here
                fusedLocationProviderClient?.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper())
                mMap.isMyLocationEnabled = true
            }else
            {
                checkLocationPermission()
            }
        }

Ваша проблема здесь. Когда вы предоставляете разрешение приложения, оно не будет выполнять поиск местоположения, поэтому вам нужно написать метод, чтобы сделать это, если вы предоставили ему разрешение.

...