Depois de atualizar para o Android versão 6.0, a verificação de Bluetooth Low Energy (BLE) só funcionará se os serviços de localização estiverem ativados no dispositivo. Veja aqui como referência: Bluetooth Low Energy startScan no Android 6.0 não encontra dispositivos
Basicamente, você precisa ter a permissão habilitada para o aplicativo e também para o telefone. Isso é um inseto? É possível digitalizar sem os serviços de localização realmente ativados? Não quero ter a localização de todos os meus aplicativos.
EDITAR
Não mencionei que estou usando o startScan()
método BluetoothLeScanner
fornecido na API 21. Aceito o curso e as permissões de localização fina no manifesto que esse método exige. Só não quero que os usuários do meu aplicativo tenham que habilitar os serviços de localização em seus dispositivos (GPS, etc.) para usar o meu aplicativo.
Anteriormente, o startScan()
método seria executado e retornaria resultados com os serviços de localização desativados no telefone. No Marshmallow, no entanto, o mesmo aplicativo "verificava", mas falhava silenciosamente e não retornava resultados quando os serviços de localização não estavam habilitados no telefone e as permissões de curso / localização fina ainda estavam no manifesto.