@Izzy Saya tidak berpikir itu sepenuhnya duplikat.
Matius Baca
2
@ Izzy tidak terkait. Pertanyaan yang Anda tautkan tidak ada hubungannya dengan layanan lokasi.
lorddev
1
@ Lorddev Tidak, mereka tidak disebutkan secara eksplisit. Tetapi Anda dapat menggunakan kode yang sama untuk memanggil maksud untuk layanan lokasi. Yang sedikit membingungkan saya adalah ungkapan komentar saya, yang menunjukkan "pukulan langsung" (dan di sini Anda berdua benar: itu tidak persis sama). Sulit dikatakan, setengah tahun kemudian, apa yang ada dalam pikiran saya saat itu ...
Izzy
Jawaban:
12
Apakah mungkin untuk mengaktifkan Layanan Lokasi (GPS atau Google NetworkLocation) melalui ADB atau Terminal Emulator?
Perintahnya adalah:
adb shell settings put secure location_providers_allowed gps
dimana,
settingsakan membuat perubahan menjadi settings.db(bagian dari com.android.providers.settings)
putadalah memperbarui kunci location_providers_alloweddengan nilai gpsdalam tabel secure.
Perintah di atas tidak akan mengaktifkan Layanan Lokasi Google. Untuk mengaktifkannya juga, berikan perintah:
adb shell settings put secure location_providers_allowed gps,network
Anda akan ditampilkan sembulan untuk menyetujui Layanan Lokasi. Di Android 4.2.1 saya, saya harus setuju melalui GUI atau input keyeventsetiap kali saya mengaktifkan layanan dari awal.
Namun, di Android 5.0 saya, saya dapat menyimpan pengaturan di dialog dan eksekusi perintah membuat hal-hal dilakukan dengan sempurna dari waktu berikutnya.
Beberapa perangkat seperti yang Lollipop memiliki tiga mode Lokasi, dan nilai yang relevan untuk diteruskan dalam perintah di atas adalah:
Akurasi tinggi: gps,wifi,networkatau gps,network(jika Anda tidak ingin Wi-Fi diaktifkan)
Hemat baterai: wifi,networkatau networkhanya
Hanya perangkat: gps
Untuk menonaktifkan mode Lokasi
adb shell settings put secure location_providers_allowed ' '
Apakah mungkin untuk mengubah pengaturan terkait sistem lainnya?
Apakah mungkin untuk mencapai hal yang sama, tetapi dari konsol perangkat, bukan melalui ADB komputer eksternal?
davide
1
Ya, tentu saja. Anda akan memerlukan akses root atau ADB nirkabel yang berjalan pada perangkat. Lihatlah jawaban ini sebagai contoh. Anda akan mendapat ide.
Firelord
Ini digunakan untuk Android 5, tetapi tidak lagi di Android 6. Dengan atau tanpa root, pengaturan tidak berubah dan tetap sama seperti yang dikonfigurasi pada sistem. Mungkin ada hubungannya dengan location_providers_allowedmenjadi usang ( developer.android.com/reference/android/provider/… ). Ide ide?
gw0
Jika Anda hanya ingin mengaktifkan / menonaktifkan fungsi GPS, Anda dapat pergi ke halaman pengaturan Lokasi, lalu klik tombol sakelar. Operasi ini juga dapat dicapai dengan perintah:, adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGSlalu klik tombol sakelar.
Eddy
13
Untuk Android 6.0
Untuk Mengaktifkan penggunaan:
Untuk GPS: adb shell settings put secure location_providers_allowed +gps
Untuk Jaringan: adb shell settings put secure location_providers_allowed +network
Untuk Menonaktifkan:
GPS: adb shell settings put secure location_providers_allowed -gps
Untuk Jaringan: adb shell settings put secure location_providers_allowed -network
Ini bekerja untuk saya, bukan jawaban yang diterima.
TheMonkeyKing
Terima kasih, ini berhasil. Adakah di sana kita dapat mengaktifkan / menonaktifkan gps dan jaringan dengan satu perintah adb baris. Saya membutuhkannya untuk locaton dengan akurasi tinggi. gps + network = akurasi tinggi
Suban Dhyako
4
Layanan Lokasi Android hadir dengan berbagai opsi:
1) Akurasi Tinggi:gps, network
Memungkinkan:adb shell settings put secure location_providers_allowed +gps,network
Nonaktifkan:adb shell settings put secure location_providers_allowed -gps,network
2) Hanya Telepon:gps
Memungkinkan:adb shell settings put secure location_providers_allowed +gps
Nonaktifkan:adb shell settings put secure location_providers_allowed -gps
3) Hemat Baterai:network
Memungkinkan:adb shell settings put secure location_providers_allowed +network
Nonaktifkan:adb shell settings put secure location_providers_allowed -network
location_providers_allowed tidak lagi berfungsi untuk Android 10 (API level 29).
Sebagai gantinya, Anda dapat mengatur location_modeke LOCATION_MODE_HIGH_ACCURACYdengan nilai 3:
adb shell settings put secure location_mode 3
CATATAN: Mungkin tidak akan berfungsi> v29 karena ini sudah usang karena dokumen pada Mode Lokasi menyebutkan:
Konstanta ini sudah tidak digunakan lagi di API level 28. Metode yang disukai untuk memeriksa mode lokasi dan mendengarkan perubahan adalah melalui LocationManager#isLocationEnabled()dan LocationManager#MODE_CHANGED_ACTION.
Tidak tahu apa cara terprogram untuk melakukan ini melalui shell akan begitu konstanta ini menghilang.
Jawaban:
Perintahnya adalah:
dimana,
settings
akan membuat perubahan menjadisettings.db
(bagian daricom.android.providers.settings
)put
adalah memperbarui kuncilocation_providers_allowed
dengan nilaigps
dalam tabelsecure
.Perintah di atas tidak akan mengaktifkan Layanan Lokasi Google. Untuk mengaktifkannya juga, berikan perintah:
Anda akan ditampilkan sembulan untuk menyetujui Layanan Lokasi. Di Android 4.2.1 saya, saya harus setuju melalui GUI atau
input keyevent
setiap kali saya mengaktifkan layanan dari awal.Namun, di Android 5.0 saya, saya dapat menyimpan pengaturan di dialog dan eksekusi perintah membuat hal-hal dilakukan dengan sempurna dari waktu berikutnya.
Beberapa perangkat seperti yang Lollipop memiliki tiga mode Lokasi, dan nilai yang relevan untuk diteruskan dalam perintah di atas adalah:
gps,wifi,network
ataugps,network
(jika Anda tidak ingin Wi-Fi diaktifkan)wifi,network
ataunetwork
hanyagps
Untuk menonaktifkan mode Lokasi
Lihat :
Tapi saya sudah memberikan ide besar menggunakan
settings put
.sumber
location_providers_allowed
menjadi usang ( developer.android.com/reference/android/provider/… ). Ide ide?adb shell am start -a android.settings.LOCATION_SOURCE_SETTINGS
lalu klik tombol sakelar.Untuk Android 6.0
Untuk Mengaktifkan penggunaan:
Untuk GPS:
adb shell settings put secure location_providers_allowed +gps
Untuk Jaringan:
adb shell settings put secure location_providers_allowed +network
Untuk Menonaktifkan:
GPS:
adb shell settings put secure location_providers_allowed -gps
Untuk Jaringan:
adb shell settings put secure location_providers_allowed -network
sumber
Layanan Lokasi Android hadir dengan berbagai opsi:
1) Akurasi Tinggi:
gps, network
Memungkinkan:
adb shell settings put secure location_providers_allowed +gps,network
Nonaktifkan:
adb shell settings put secure location_providers_allowed -gps,network
2) Hanya Telepon:
gps
Memungkinkan:
adb shell settings put secure location_providers_allowed +gps
Nonaktifkan:
adb shell settings put secure location_providers_allowed -gps
3) Hemat Baterai:
network
Memungkinkan:
adb shell settings put secure location_providers_allowed +network
Nonaktifkan:
adb shell settings put secure location_providers_allowed -network
sumber
location_providers_allowed
tidak lagi berfungsi untuk Android 10 (API level 29).Sebagai gantinya, Anda dapat mengatur
location_mode
keLOCATION_MODE_HIGH_ACCURACY
dengan nilai 3:CATATAN: Mungkin tidak akan berfungsi> v29 karena ini sudah usang karena dokumen pada Mode Lokasi menyebutkan:
Tidak tahu apa cara terprogram untuk melakukan ini melalui shell akan begitu konstanta ini menghilang.
sumber