Quando o Android mostra um diálogo de emparelhamento ao usar soquetes RFCOMM inseguros?

Eu estou tentando conectar dois dispositivos android desemparelhados via Bluetooth para fins de rede P2P. A proteção MitM não é necessária. Android tem ocreateInsecureRfcommSocketToServiceRecord elistenUsingInsecureRfcommWithServiceRecord para isso (desde o nível API 10), que funciona perfeitamente em dispositivos modernos. No entanto, em um Galaxy Ace (Android 2.3.3 = nível API 10, conectando-se a um Galaxy Nexus), ele cria um diálogo de pareamento. Isso acontece tanto nas conexões de entrada quanto de saída. (Atualizar: Atualizando o Galaxy Ace para o Android 2.3.6, aparentemente, corrige o problema. Existe uma versão específica do Android que sempre / nunca faz isso?)

Depois que o emparelhamento é aceito, a conexão funciona. Por esse motivo, acho que isso não está relacionadoProblema 40101: createInsecureRfcommSocketToServiceRecord faz com que a caixa de diálogo de emparelhamento no Android 4.2 o que só deve acontecer se o registro de serviço não existir.

Eu assumo que esta caixa de diálogo não pode ser evitada nos dispositivos em que ela aparece (se puder, explicar como fazer isso é uma resposta válida). Por esta razão,Eu gostaria de saber quando esse diálogo é levantado. Eu não encontrei nada na fonte Android Java (ela é nativa rapidamente). Eu duvido que tenha algo a ver com a versão Bluetooth, já que o Ace possui Bluetooth 2.1, que supostamente suporta as conexões "apenas funciona".

Se houver algo que me permita detectar se um dispositivo suportará conexões sem estalar a caixa de diálogo, ou se foi claramente corrigido para uma certa versão do Android, isso me ajudaria imensamente.

Além disso, estou procurando uma maneira de facilmenteexcluir esses dispositivos.

questionAnswers(1)

yourAnswerToTheQuestion