Sau khi nâng cấp lên phiên bản Android 6.0, tính năng quét Bluetooth Low Energy (BLE) sẽ chỉ hoạt động nếu Dịch vụ vị trí được bật trên thiết bị. Xem tại đây để tham khảo: Bluetooth Low Energy startScan trên Android 6.0 không tìm thấy thiết bị
Về cơ bản, bạn cần phải bật quyền cho ứng dụng cũng như cho điện thoại. Đây có phải là một lỗi? Có thể quét mà không thực sự bật dịch vụ định vị không? Tôi không muốn phải có vị trí cho tất cả các ứng dụng của mình.
CHỈNH SỬA
Tôi không đề cập được rằng tôi đang sử dụng startScan()
phương pháp BluetoothLeScanner
được cung cấp trong API 21. Tôi đồng ý với khóa học và các quyền vị trí tốt trong tệp kê khai mà phương pháp này yêu cầu. Tôi chỉ không muốn người dùng ứng dụng của mình phải bật dịch vụ định vị trên thiết bị của họ (GPS, v.v.) để sử dụng ứng dụng của tôi.
Trước đây, startScan()
phương pháp này sẽ chạy và trả về kết quả khi dịch vụ Vị trí bị tắt trên điện thoại. Tuy nhiên, trên Marshmallow, ứng dụng tương tự sẽ "quét" nhưng không thành công một cách âm thầm và không trả về kết quả khi dịch vụ định vị không được bật trên điện thoại và các quyền về khóa học / vị trí tốt vẫn còn trong tệp kê khai.