Flutter-geolocator: Izinkan hanya saat menggunakan aplikasi di android 10 mengembalikan GeolocationStatus.denied

Dibuat pada 3 Okt 2019  ·  37Komentar  ·  Sumber: Baseflow/flutter-geolocator

Laporan Bug

saat memilih Izinkan hanya saat menggunakan aplikasi, opsi baru di Android 10 Geolocator().checkGeolocationPermissionStatus() mengembalikan GeolocationStatus.denied
Screenshot_1570103723

Versi: 5.1.4

Peron:
:robot: Android

android in progress

Komentar yang paling membantu

Saya memiliki masalah yang sama jika menggunakan versi 5.1.4+1 dan mengompilasi dengan SDK 28. Jika saya mengompilasi pada SDK 29, ini berfungsi. Menjalankan ini di Pixel 3a yang menjalankan Android 10.

Saya dapat mengonfirmasi bahwa pengaturan compileSdkVersion dan targetSdkVersion ke 29 menyelesaikan masalah ini.

Semua 37 komentar

Bisakah Anda memberi tahu saya lebih banyak tentang kode yang mengembalikan GeolocationStatus.denied?

Saya dapat mereproduksinya dengan aplikasi sampel.
coba saja dengan emulator android 10.

Apakah emulator menyelesaikan kesalahan GeolocationStatus.denied?

Saya tidak yakin saya mengerti apa yang Anda maksud

Bisakah Anda memberi tahu saya beberapa detail tentang kode dan apa yang Anda coba buat? Saya mencoba mereproduksi masalah Anda, tetapi saya memerlukan informasi lebih lanjut.

coba aplikasi demo di emulator android dengan android 10
untitled

Saya mereproduksi masalah ini dan sampai pada kesimpulan bahwa pengaturan lokasi dari perangkat dimatikan. Untuk memperbaiki masalah ini, buka Pengaturan > Lokasi > Gunakan Lokasi > Aktif .

lokasi dihidupkan saya memeriksanya, maka ketika saya memilih izinkan sepanjang waktu itu diakui sebagai diberikan.

untitled

Output dari aplikasi mengatakan Anda menggunakan FusedLocationProvider. Disarankan untuk menggunakan layanan Google Play versi 11.6.0 atau lebih tinggi, yang mencakup perbaikan bug untuk kelas ini.

https://imgur.com/a/egX6z6t

Seperti yang Anda lihat, saya menggunakan layanan google play 19.2.75 dan lokasinya aktif

Ini adalah izin yang benar-benar baru di Android 10 baru. Seharusnya tidak memberikan Diizinkan atau Ditolak karena memerlukan pemeriksaan yang berbeda.

https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_BACKGROUND_LOCATION

@humazed Apa yang ingin Anda capai dengan metode Geolocator().checkGeolocationPermissionStatus()? Saya tidak mendapatkan kesalahan apa pun jika saya mengatur pengaturan lokasi ke Diizinkan sepanjang waktu.

Saya menggunakannya untuk pemeriksaan izin, dan bahkan aplikasi demo menggunakannya dan tidak berfungsi.
Dan masalahnya hanya muncul ketika Anda memilih untuk mengizinkan hanya saat menggunakan aplikasi

Pada Kam, 10 Oktober 2019 pukul 10:09 Stijn van Woerkom [email protected]
menulis:

@humazed https://github.com/humazed Apa yang ingin Anda capai dengan
metode Geolocator().checkGeolocationPermissionStatus()? Saya tidak mengerti
kesalahan jika saya mengatur pengaturan lokasi ke Diizinkan sepanjang waktu.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/BaseflowIT/flutter-geolocator/issues/334?email_source=notifications&email_token=ACDNYJTFXDG2QBXZGR24XQTQN3PLPA5CNFSM4I5CDEP2YY3PNVWWK3TUL52HS4DFVREXG43VMXVBW63TULN5MVXVBWW63LKOPN5VMXVBJKW63
atau berhenti berlangganan
https://github.com/notifications/unsubscribe-auth/ACDNYJS7PSSNNQPH3S7HBWTQN3PLPANCNFSM4I5CDEPQ
.

@humazed Saya mereproduksi aplikasi demo di Android 10 baru dan dengan metode Geolocator().checkGeolocationPermissionStatus() dan mengambil 0 kesalahan ketika saya memilih untuk mengizinkan hanya saat menggunakan aplikasi. Bisakah Anda mengirim kode Anda sehingga saya bisa melihatnya?

Saya baru saja mengkloning repo dan menjalankannya tanpa perubahan apa pun

Saya bahkan membuat emulator baru jika emulator saya saat ini memiliki masalah atau sesuatu tetapi mendapatkan perilaku yang sama

Saya pikir masalahnya akan lebih bergantung pada pengaturan dari emulator. Aplikasi menyatakan bahwa ada masalah dengan Layanan Google Play. Apakah Anda menggunakan jaringan atau berada di lokasi yang tidak mendukung Layanan Google Play?

Saya sudah mencoba dengan emulator baru tetapi masalahnya sama

Aplikasi ini berfungsi dengan baik untuk versi apa pun yang lebih rendah dari android10

Dalam gif yang saya berikan, saya menunjukkan versi layanan Google play dan lokasinya diaktifkan

Saya memiliki masalah yang sama jika menggunakan versi 5.1.4+1 dan mengompilasi dengan SDK 28. Jika saya mengompilasi pada SDK 29, ini berfungsi. Menjalankan ini di Pixel 3a yang menjalankan Android 10.

Saya memiliki masalah yang sama jika menggunakan versi 5.1.4+1 dan mengompilasi dengan SDK 28. Jika saya mengompilasi pada SDK 29, ini berfungsi. Menjalankan ini di Pixel 3a yang menjalankan Android 10.

Saya dapat mengonfirmasi bahwa pengaturan compileSdkVersion dan targetSdkVersion ke 29 menyelesaikan masalah ini.

Saya memiliki masalah yang sama.

Saya melihat itu dengan iOS juga. getCurrentPosition() menampilkan kotak dialog untuk selalu mengaktifkan lokasi atau mengaktifkan lokasi saat menggunakan aplikasi atau menolak akses lokasi. Memilih "Aktifkan saat menggunakan aplikasi" menghasilkan pengecualian dengan kesalahan "PERMISISON_DENIED"

Saya menggunakan geolocator 5.1.3

Kesalahan serupa direproduksi pada Pixel 4.

Masalah yang sama.
Samsung Galaxy S10 Plus, ketika mengklik "Keep while-in-use access" dapatkan PermissionStatus.denied

Saat ini kami sedang mengerjakan versi baru plugin izin lokasi. Versi baru ini mencakup akses saat digunakan dan tidak lagi mengembalikan PermissionStatus.denied.

Urgh - Saya baru saja menemukan bahwa saya mengalami masalah yang sama untuk aplikasi produksi. Saya salah berasumsi bahwa ketika pengguna memberikan izin akses yang sedang digunakan, metode ini akan mengembalikan PermissionStatus.granted - jadi sepertinya saya tidak bisa lagi mengandalkan ini.

EDIT: Dua jam kemudian, baca sisa utas dan sadari bahwa saran "Saya dapat mengonfirmasi bahwa pengaturan compileSdkVersion dan targetSdkVersion ke 29 menyelesaikan masalah ini." bekerja.

"Saya dapat mengonfirmasi bahwa pengaturan compileSdkVersion dan targetSdkVersion ke 29 menyelesaikan masalah ini." memecahkan masalah sampai saya menambahkan ini di AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>

@JBBx2016 Kami sedang mengerjakan izin android.permissions.ACCES_BACKGROUND_LOCATION. Ketika izin diperbaiki, itu bisa menyelesaikan kesalahan Anda.

Perubahan apapun?

perubahan apapun?

Perubahan apapun

Tidak berfungsi di perangkat Android 10. :|

Sebagai solusi sementara, Anda dapat menggunakan garpu saya
kepala cabang
di mana saya memindahkan barang izin dari location_permissions yang jelas rusak ke plugin lain permission_handler

Aplikasi saya berhenti bekerja setelah layanan Google Play PopUp, apa pun yang saya jawab "Tolak", "Otorisasi", dll. dengan Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
dan dengan yang terbaik itu berfungsi dengan baik
Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.best);
Android 10 dengan emulator, flutter cabang stabil terbaru.

Geolocator locator = Geolocator();
    locator
        .checkGeolocationPermissionStatus(
            locationPermission: GeolocationPermission.locationWhenInUse)

Perlu melewati izin di params.
GeolocationPermission.locationWhenInUse

Diperbaiki di versi 6.0.0

Apakah halaman ini membantu?
0 / 5 - 0 peringkat