Tại sao tôi cần bật dịch vụ định vị để ghép nối với thiết bị Bluetooth?


16

Bất cứ khi nào tôi cố gắng kết nối Samsung Galaxy S6 của mình với Android 6.0.1 với thiết bị hỗ trợ Bluetooth, nó sẽ cho tôi biết để bật "dịch vụ định vị".

Khi tôi phàn nàn về điều này, nhà cung cấp phần mềm đã trả lời: "Các bản cập nhật gần đây cho API Google Android ảnh hưởng đến công nghệ Bluetooth LE yêu cầu cấp quyền vị trí để được cấp để sử dụng ứng dụng."

Tôi không thấy sự cần thiết cho việc này.

Cuộc thảo luận này nói về điều này. Tài liệu tham khảo kỹ thuật cho biết các ứng dụng cần phải có một số quyền nhất định , không phải dịch vụ định vị đó đang hoạt động.

Để truy cập số nhận dạng phần cứng của các thiết bị bên ngoài gần đó thông qua quét Bluetooth và Wi-Fi, ứng dụng của bạn giờ đây phải có quyền ACCESS_FINE_LOCATION hoặc ACCESS_COARSE_LOCATION

Câu hỏi : Điều này có nghĩa là tuyên bố của nhà cung cấp phần mềm không chính xác?


Hệ thống cấp phép hoàn toàn bị cản trở với việc tái cấu trúc MM (giải thích cho biết họ có "đèn hiệu Bluetooth" trong tâm trí có thể được sử dụng để xác định vị trí của bạn). Theo hiểu biết của tôi, nghi ngờ của bạn là hợp lý và tuyên bố của nhà cung cấp không chính xác: Ứng dụng cần có sự cho phép để truy cập Bluetooth. Nhưng nếu họ cần một dịch vụ định vị để tìm phần cứng ("rẽ phải vào mối hàn thứ hai, vượt qua bóng bán dẫn ở cổng 3 thì"), tôi sẽ ngạc nhiên. Tôi rất nghi ngờ các dịch vụ định vị cần được kích hoạt cho điều đó, nhưng tôi không có thiết bị MM để xác minh.
Izzy

Câu trả lời:


6

Hiểu biết của tôi về Bluetooth là các ứng dụng sử dụng Bluetooth có quyền truy cập trực tiếp vào địa chỉ MAC của thiết bị cho mục đích ghép nối. Tôi sẽ giả định điều này cho câu trả lời này.

Nếu bạn có thể đọc địa chỉ MAC của máy phát WiFi hoặc Bluetooth, bạn có thể định vị thiết bị. Đây là cách hoạt động của vị trí WiFi / Bluetooth; bạn lắng nghe địa chỉ MAC của các máy phát và tìm kiếm chúng trong cơ sở dữ liệu toàn cầu khổng lồ.

Do đó, mọi ứng dụng sử dụng Bluetooth và kết nối dữ liệu về mặt lý thuyết đều có khả năng định vị thiết bị của bạn. Tôi không chắc chắn điều này là thực tế có thể; Bluetooth không có cùng cơ sở hạ tầng và điểm truy cập bán cố định như WiFi.

Bằng cách yêu cầu dịch vụ định vị truy cập Bluetooth, bạn đảm bảo rằng người dùng hiểu thông tin vị trí của họ có thể bị rò rỉ khi họ sử dụng Bluetooth. Trong các phiên bản Android trước Marshmallow, người dùng có thể sử dụng Bluetooth mà không bật dịch vụ định vị, nhưng thông tin vị trí có thể bị rò rỉ. Trong các phiên bản cũ hơn này, bạn cũng có thể chạy quét WiFi để tìm địa chỉ MAC mà không bật dịch vụ định vị, điều đó một lần nữa có nghĩa là thông tin vị trí của bạn có thể bị rò rỉ. Yêu cầu cho phép các dịch vụ định vị sử dụng Bluetooth là về việc đảm bảo rằng ai đó vô hiệu hóa vị trí sẽ giữ vị trí của họ ở chế độ riêng tư.

Tôi sẽ mô tả vấn đề này là một vấn đề thiết kế và không phải là một lỗi. Một lỗi có lẽ có thể sửa được, nhưng đối với tôi bạn không thể sử dụng Bluetooth mà không bị rò rỉ thông tin vị trí. Bluetooth được tạo ra trước khi bất kỳ ai coi dịch vụ định vị WiFi và Bluetooth.


2

Nhà cung cấp là chính xác, bạn cần kích hoạt dịch vụ định vị để quét các thiết bị WiFi hoặc Bluetooth LE.

Xem lỗi # 185370 để biết chi tiết. Google cho biết họ đã sửa nó trong một 'bản phát hành trong tương lai' nhưng theo nhận xét về lỗi này, nó vẫn chưa được sửa trong Android 7.


Chỉnh sửa: Trước đây tôi đã nói các dịch vụ định vị chỉ được yêu cầu khi Ứng dụng bắt đầu quét đang chạy trong nền. Mã nguồn chỉ ra điều này chỉ đúng nếu API-Target là <Android M.


Nếu đó là một lỗi Android, tại sao nhà cung cấp sẽ đúng? Đáng lẽ họ phải trả lời: "Đó là lỗi của Android"
GUI Junkie

Có thể liên kết thiết bị với bluetooth bên ngoài Ứng dụng không?
GUI Junkie

Bạn hỏi nếu tuyên bố của nhà cung cấp là không chính xác. Nó không phải là không chính xác, bạn cần phải cấp quyền vị trí cho ứng dụng. Ngoài ra, do lỗi, bạn cần kích hoạt dịch vụ định vị .
Jomo
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.