Bagaimana cara Android mendapatkan lokasi kasar?

15

Saya membaca bahwa android (dan sistem operasi yang serupa, misalnya iOS) mendapatkan lokasi kasar saat ini dengan menggunakan triangulasi WiFi atau menara GSM. Saya mendapatkan ide dasar tetapi memiliki pertanyaan tentang detailnya.

  1. Apakah Android biasanya menggunakan kedua metode atau lebih suka satu dan kembali ke yang lain?
  2. Apakah itu berkomunikasi dengan server untuk mendapatkan posisi melalui WiFi? (mis. mengirim SID WiFis ke layanan web)
  3. Apakah itu berkomunikasi dengan Operator untuk mendapatkan posisi melalui menara GSM atau apakah ini dilakukan pada perangkat?
Tim Büthe
sumber

Jawaban:

8

Ini sepenuhnya tergantung pada pengembang tentang bagaimana menerapkan layanan lokasi. Deskripsi lengkap tersedia di sini:

http://developer.android.com/guide/topics/location/obtaining-user-location.html

Grafik sekitar 1/3 di bawah halaman ini cukup berguna untuk melihat apa yang mungkin dilakukan aplikasi tipikal, tetapi sekali lagi, sepenuhnya terserah pengembang aplikasi. Jenis layanan lokasi adalah:

  • Perbaikan dalam cache
  • ID-sel
  • Wifi
  • GPS
  • Lokasi Mock

Jika aplikasi meminta izin untuk lokasi kasar saja, itu tidak akan menggunakan GPS untuk menentukan lokasi.

Untuk menjawab pertanyaan Anda ...

  1. Terserah pengembang aplikasi individual, tetapi dalam kebanyakan kasus urutannya adalah Cached Fix, Cell-ID, Wifi, GPS, dalam urutan itu.
  2. Ya, setelah mendapatkan ID menara atau SSID dari sinyal WiFi, data tersebut dikirim ke Google untuk menentukan lokasi kasar.
  3. Tidak, Google telah melakukan sesuatu yang sangat pintar di sini. Google memiliki basis data sendiri tentang lokasi menara sel, dan tidak memerlukan interaksi dengan operator untuk menentukan lokasi menara.

Artikel ini memiliki beberapa detail http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/

Versi singkatnya adalah, ketika Anda menggunakan aplikasi seperti Google Maps, aplikasi akan mengirim informasi Cell-ID saat ini kembali bersama dengan perbaikan GPS Anda saat ini. Dengan cara ini, Google mendapatkan contoh kekuatan sinyal yang sangat baik di berbagai lokasi, dan mampu membangun basis data yang sangat kaya.

JadeMason
sumber
Saya sangat menyukai jawaban Anda, tetapi saya tidak yakin apakah hak Anda pada bagian "sepenuhnya terserah pengembang". Sejauh yang saya tahu, pengembang hanya bisa memutuskan untuk mendapatkan lokasi denda atau kasar. Dengan kata lain dia dapat menggunakan LocationManager.NETWORK_PROVIDER dan / atau LocationManager.GPS_PROVIDER untuk mendapatkan lokasi. Saya pikir dia tidak bisa memutuskan atau bahkan melihat, apakah Wifi atau GSM digunakan, kan?
Tim Büthe
Dalam kasus yang paling umum, pengembang tidak akan peduli jika data berasal dari WiFi atau Cell-ID, tetapi pengembang dapat membatasi hanya mengizinkan aplikasi untuk bekerja ketika WiFi dinonaktifkan atau GPRS / GSM dinonaktifkan. Saya menganggap pertanyaan Anda berarti: "Apakah ada urutan standar yang diikuti semua aplikasi" dan jawabannya adalah tidak. Namun, terkait dengan perbedaan antara WiFi dan Cell-ID, pengembang aplikasi memiliki kemampuan terbatas untuk secara khusus meminta satu jenis layanan lokasi.
JadeMason
1
Anda tahu cara mengirim lokasi hotspot Wi-Fi ke database mereka sehingga saya akan memiliki triangulasi yang lebih baik di lingkungan saya / di dalam ruangan? Saya telah membuka utas untuk pertanyaan saya: android.stackexchange.com/questions/4715/…
Özgür
3

Banyak dari ini khusus untuk operator dan saya bukan seorang dev, tetapi inilah yang saya dapat kumpulkan dari interweb dan pelatihan yang saya miliki dalam investigasi kejahatan elektronik:

  1. Ya tetapi itu tergantung pada aplikasi spesifik LBS prioritas yang ditetapkan oleh dev dan dapat didasarkan pada akurasi kursus saat ini, tingkat daya, prioritas yang telah ditentukan ...
  2. Iya. Operator memiliki DB lokasi stasiun induk Wifi eksklusif.
  3. Saya tidak dapat berbicara dengan Android secara khusus, tetapi umumnya ini akan menjadi tipe operator dan jaringan (CDMA atau GSM). Ponsel yang mampu keduanya tetapi setidaknya beberapa tahun yang lalu mereka melakukan ini pada handset karena kendala bandwidth melakukannya ota.
Mat
sumber
0

Ponsel Anda tahu apa menara terdekat. Ada database penyedia untuk setiap negara yang menara id berada di mana di peta. Basis data ini mungkin cukup kecil untuk dipasang sebelumnya oleh penyedia Anda atau disediakan melalui udara. Bagaimana ponsel android mendapatkan data ini saya tidak tahu.

Barfieldmv
sumber
-1

Saya memiliki jawaban yang sedikit berbeda untuk # 3: perangkat ini dapat digunakan jika Anda ingin menggunakan triangulasi, tetapi Anda harus menggunakan operator jika Anda ingin mencocokkan ID-Sel dan lokalisasi menara gsm (atau cdma).

rampok
sumber
tetapi apakah ini opsi yang dapat ditentukan oleh pengembang aplikasi atau bahkan pengguna akhir atau apakah itu sesuatu yang ditentukan oleh operator?
Matt
Ini wajib, jika Anda ingin menggunakan cara ini untuk melokalisasi perangkat. Menggunakan triangulasi atau metode lain memungkinkan Anda mengetahui di mana posisi Anda versus antena. Tetapi jika Anda tidak tahu lat / panjang antena, Anda tidak akan bisa mendapatkan posisi Anda di peta. Saya pulang saya jelas :)
Rob
@Rob Tapi Anda tidak perlu operator untuk menemukan lokasi menara. Setiap menara menyiarkan ID unik, siapa pun dapat secara mandiri mengambil dan memetakannya, tanpa interaksi operator. Google telah melakukan ini selama beberapa waktu untuk menara seluler dan titik akses WiFi. Mobil Google Streetview mengambil info saat bepergian, dan pengguna Google Maps di berbagai platform juga mengirim kembali data anonim yang cocok dengan perbaikan GPS dengan antena dan wifi ID dan kekuatan. Ini mirip dengan cara Google mengambil banyak data lalu lintas di kota, mereka mengumpulkan kecepatan dan posisi dari banyak pengguna Peta.
Diambil
Apakah kamu yakin Terlihat mengejutkan. Misalnya, di Jerman (dan negara-negara lain di Eropa), Google telah dituntut karena mengumpulkan informasi wifi, jadi sepertinya mereka tidak menggunakan sumber ini. Untuk basis data GSM, jika Google memiliki satu, itu harus dapat diakses, dan saya tidak pernah mendengarnya.
Rob
1
@Rob googlemobile.blogspot.com/2008/06/... "Telepon mengetahui ID menara sel yang sedang digunakan. Jika ponsel memiliki GPS, aplikasi Maps pada ponsel mengirimkan koordinat GPS bersama dengan ID sel untuk server lokasi Google. " tidak dapat menemukan tautannya sekarang tetapi mereka mengumumkan beberapa waktu lalu bahwa aplikasi Blackberry Google Maps mengirim kembali WiFi SSID dan kekuatan di dekatnya untuk alasan yang sama. Ini tidak sama dengan "kesalahan" pemrograman pada perangkat lunak Streetview yang mereka tuntut karena menangkap lebih banyak data WiFi daripada yang seharusnya.
Diambil