Làm thế nào để Android có được vị trí thô?


15

Tôi đọc rằng android (và các sytems hoạt động tương tự, ví dụ như iOS) có được vị trí thô hiện tại bằng cách sử dụng tam giác WiFi hoặc GSM. Tôi có được ý tưởng cơ bản nhưng có câu hỏi về các chi tiết.

  1. Android thường sử dụng cả hai phương pháp hay nó thích một phương thức và quay lại phương thức kia?
  2. Liệu nó có kết hợp với một máy chủ để có được vị trí thông qua WiFi không? (ví dụ: gửi SID của WiFis đến dịch vụ web)
  3. Liệu nó có liên lạc với Nhà cung cấp để có được vị trí thông qua các tháp GSM hay điều này được thực hiện trên thiết bị?

Câu trả lời:


8

Điều này thực sự phụ thuộc vào nhà phát triển về cách triển khai dịch vụ định vị. Mô tả đầy đủ có sẵn ở đây:

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

Biểu đồ khoảng 1/3 trang xuống khá hữu ích để xem ứng dụng thông thường có thể làm gì, nhưng một lần nữa, nó hoàn toàn phụ thuộc vào nhà phát triển ứng dụng. Các loại dịch vụ định vị là:

  • Bộ nhớ đệm
  • ID di động
  • Wifi
  • GPS
  • Vị trí mô phỏng

Nếu ứng dụng chỉ yêu cầu quyền đối với vị trí thô, nó sẽ không sử dụng GPS để xác định vị trí.

Để trả lời câu hỏi của bạn ...

  1. Tùy thuộc vào từng nhà phát triển ứng dụng, nhưng trong hầu hết các trường hợp, trình tự sẽ được lưu vào bộ nhớ cache, Cell-ID, Wifi, GPS, theo thứ tự đó.
  2. Có, sau khi có được ID tháp hoặc SSID của tín hiệu WiFi, dữ liệu đó được truyền tới Google để xác định vị trí thô.
  3. Không, Google đã làm một cái gì đó thực sự thông minh ở đây. Google có cơ sở dữ liệu riêng về các vị trí tháp di động và không yêu cầu tương tác với nhà mạng để xác định vị trí của tháp.

Bài viết này có một số chi tiết http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/

Phiên bản ngắn là, khi bạn sử dụng một ứng dụng như Google Maps, ứng dụng sẽ gửi lại thông tin Cell-ID hiện tại cùng với bản sửa lỗi GPS hiện tại của bạn. Bằng cách này, Google có được một mẫu rất tốt về cường độ tín hiệu ở nhiều vị trí khác nhau và có thể xây dựng cơ sở dữ liệu rất phong phú.


Tôi thích câu trả lời của bạn khá nhiều, nhưng tôi không chắc liệu bạn có quyền "hoàn toàn phụ thuộc vào nhà phát triển" hay không. Theo như tôi có thể nói, nhà phát triển chỉ có thể quyết định lấy vị trí tốt hoặc thô. Nói cách khác, anh ta có thể sử dụng LocationManager.NETWORK_PROVIDER và / hoặc LocationManager.GPS_PROVIDER để lấy vị trí. Tôi nghĩ rằng anh ta không thể quyết định hoặc thậm chí xem, nếu sử dụng Wifi hoặc GSM, phải không?
Tim Büthe

Trong trường hợp phổ biến nhất, nhà phát triển sẽ không quan tâm nếu dữ liệu đến từ WiFi hoặc Cell-ID, nhưng nhà phát triển có thể đưa ra các hạn chế để chỉ cho phép ứng dụng hoạt động khi WiFi bị tắt hoặc GPRS / GSM bị tắt. Tôi lấy câu hỏi của bạn để nói: "Có một chuỗi tiêu chuẩn mà tất cả các ứng dụng tuân theo" và câu trả lời là không. Tuy nhiên, liên quan cụ thể đến sự khác biệt giữa WiFi và Cell-ID, nhà phát triển ứng dụng có khả năng hạn chế để yêu cầu cụ thể một loại dịch vụ định vị.
JadeMason

1
Bạn có biết cách gửi vị trí điểm truy cập Wi-Fi vào cơ sở dữ liệu của họ để tôi sẽ có hình tam giác tốt hơn trong khu phố / trong nhà không? Tôi đã mở một chủ đề cho câu hỏi đó của tôi: android.stackexchange.com/questions/4715/ mẹo
Özgür

3

Rất nhiều trong số này là cụ thể của nhà cung cấp dịch vụ và tôi không phải là nhà phát triển mà là những gì tôi có thể ghép lại từ các liên kết và các khóa đào tạo tôi đã có trong điều tra tội phạm điện tử:

  1. Có nhưng nó phụ thuộc vào các ưu tiên LBS của ứng dụng cụ thể được đặt bởi nhà phát triển và có thể dựa trên độ chính xác của khóa học hiện tại, mức năng lượng, mức độ ưu tiên được xác định trước ...
  2. Đúng. Các nhà mạng có DB vị trí trạm gốc Wifi độc quyền.
  3. Tôi không thể nói chuyện với Android một cách cụ thể, nhưng nhìn chung đây sẽ là nhà mạng và loại mạng (CDMA hoặc GSM). Điện thoại có khả năng của cả hai nhưng ít nhất một vài năm trước họ đã làm việc này trên thiết bị cầm tay vì những hạn chế về băng thông khi thực hiện nó.


0

Bạn điện thoại biết những tòa tháp gần nhất là gì. Có một cơ sở dữ liệu nhà cung cấp cho mỗi quốc gia có id tháp nằm ở đâu trên bản đồ. Cơ sở dữ liệu này có thể đủ nhỏ để được nhà cung cấp của bạn cài đặt sẵn hoặc cung cấp qua mạng không dây. Làm thế nào một điện thoại Android có được dữ liệu này tôi không biết.


-1

Tôi có câu trả lời hơi khác nhau cho # 3: thiết bị có thể được sử dụng nếu bạn muốn sử dụng phép tam giác, nhưng bạn cần sử dụng nhà cung cấp nếu bạn muốn khớp với Cell-ID và bản địa hóa của tháp GSM (hoặc cdma).


nhưng đây có phải là một tùy chọn có thể được xác định bởi nhà phát triển ứng dụng hoặc thậm chí là người dùng cuối hay nó là thứ được xác định bởi nhà mạng?
Matt

Đó là bắt buộc, nếu bạn muốn sử dụng cách này để bản địa hóa một thiết bị. Sử dụng phương pháp tam giác hoặc phương pháp khác cho phép bạn biết vị trí của mình so với vị trí ăng ten. Nhưng nếu bạn không biết độ trễ / dài của ăng-ten, bạn sẽ không thể có được vị trí của mình trên bản đồ. Tôi về nhà tôi rõ rồi :)
Cướp

@Rob Nhưng bạn không cần người vận chuyển để tìm vị trí của tòa tháp. Mỗi tháp phát một ID duy nhất, bất kỳ ai cũng có thể độc lập nhặt nó lên và ánh xạ nó, không có tương tác của nhà mạng. Google đã làm điều này trong một thời gian cho các tháp di động và các điểm truy cập WiFi. Xe Google Streetview chọn thông tin khi nó di chuyển và người dùng Google Maps trên nhiều nền tảng khác nhau cũng gửi lại dữ liệu ẩn danh phù hợp với các bản sửa lỗi GPS với ăng-ten và ID wifi và cường độ. Điều này tương tự như cách Google lấy rất nhiều dữ liệu lưu lượng truy cập của họ trong các thành phố, họ tổng hợp tốc độ và vị trí từ nhiều người dùng Bản đồ.
GAThrawn

Bạn có chắc không ? Có vẻ đáng ngạc nhiên. Chẳng hạn, ở Đức (và các quốc gia khác ở châu Âu), Google đã bị kiện vì thu thập thông tin wifi, vì vậy có vẻ như họ không sử dụng tài nguyên này. Đối với cơ sở dữ liệu GSM, nếu Google sở hữu một cơ sở dữ liệu, nó sẽ có thể truy cập được và tôi chưa bao giờ nghe về nó.
Cướp

1
@Rob googlemobile.blogspot.com/2008/06/ Ấn "Điện thoại biết ID của tháp di động hiện đang sử dụng. Nếu điện thoại có GPS, ứng dụng Bản đồ trên điện thoại sẽ gửi tọa độ GPS cùng với ID di động tới máy chủ định vị Google. " không thể tìm thấy liên kết ngay bây giờ nhưng họ đã thông báo trước đây rằng ứng dụng Blackberry Google Maps đã gửi lại WiFi SSID gần đó và sức mạnh cho cùng một lý do. Điều này không giống với "lỗi" lập trình trong phần mềm Streetview mà họ bị kiện vì đã thu được nhiều dữ liệu WiFi hơn so với dự kiến.
GAThrawn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.