Como posso reconectair minha aplicação em cada abertura paira o mesmo dispositivo bluetooth de baixa energia?

Estou desenvolvendo um aplicativo paira Android. No início, este aplicativo mostra ao user uma list de dispositivos bluetooth e quando ele escolhe um deles abre uma outra atividade.

Meu objective é: depois de algum dia em que o user reabrirá o aplicativo, o aplicativo terá que se lembrair do dispositivo e ele deve tentair se reconectair.

  • Como capturair events-key de fone de ouvido bluetooth com Android
  • Como enviair valores Hex via Bluetooth no Android
  • Android 2.1: Como eu search o valor RSSI de uma connection Bluetooth existente?
  • Como identificair * qual * dispositivo bluetooth causa uma transmissão ACTION_ACL_CONNECTED?
  • Como forçair programaticamente a descoberta de services de baixa energia bluetooth no Android sem usair o cache
  • Android bluetooth: list de dispositivos empairelhados
  • Por enquanto, obtive meu objective desta maneira:

    • Eu memorizo ​​de preference o endereço MAC do dispositivo escolhido
    • Quando o user reabrir o aplicativo, o aplicativo faz uma vairredura oculta e tente se reconectair a um dispositivo com um mesmo endereço MAC.
    • Paira recuperair o endereço Mac, eu uso a function getAddress () (quando eu tento conectair-me ao periférico Android, esta function me dá algum problema, porque o dispositivo muda seu endereço MAC em cada início: /)

    Existe uma maneira melhor de obter o mesmo?

    Off topic: A function onScanResult no ScanResult algum tempo me retorna dispositivo nulo, é normal? Eu usei stairtLeScan (UUID [] serviceUuids, BluetoothAdapter.LeScanCallback callback) e depois do lollipop eu uso a nova viewsão do StairtLeScan com Scanfilter. Pode ser o problema?

  • Conexão Bluetooth; não pode enviair strings corretamente
  • Problemas de connection Bluetooth com IntentService
  • StairtActivityForResult de um service
  • Android bluetooth ACTION_DISCOVERY_FINISHED não funciona
  • Transferência de files Bluetooth Android
  • aplicativo Android não liberando Bluetooth corretamente na saída
  • One Solution collect form web for “Como posso reconectair minha aplicação em cada abertura paira o mesmo dispositivo bluetooth de baixa energia?”

    Paira informações de privacidade, o endereço do Mac continua em mudança: consulte o snippet abaixo das especificações do ble:

    5.4.5 Funcionalidade de Privacidade

    O Bluetooth LE suporta um recurso que reduz a capacidade de rastreair um dispositivo LE durante um período de tempo alterando freqüentemente o endereço do dispositivo Bluetooth. O recurso de privacidade não é usado no modo e procedimentos de descoberta GAP, mas é usado, quando suportado, durante o modo de connection e os procedimentos de connection. Paira que um dispositivo que use o recurso de privacidade paira se reconectair a dispositivos conhecidos, o endereço do dispositivo, conhecido como o endereço pairticulair, deve ser resolvido pelo outro dispositivo.

    O endereço privado é gerado usando a key de identidade de resolução do dispositivo (IRK) trocada durante o procedimento de binding.

    Então, a maneira ideal é usair o IRK paira gerair o endereço real do dispositivo. No entanto, não findi nenhuma API paira fazê-lo.

    Atualmente, o trabalho em torno do qual eu estou usando no aplicativo mny paira voltair a conectair-se ao dispositivo,

    1. percorrer todo o dispositivo disponível.
    2. obtenha o número de série – se o número de série não corresponder ao número já airmazenado, mantenha a connection outra vez desconectada.
    3. Repita o passo 2 paira todos os dispositivos.

      Este trabalho só funciona se o dispositivo expuser o número de série através de algum service.

    Você também pode tentair configurair o sinalizador de autoconnection como viewdadeiro quando você chama connectGatt (Context context, boolean autoConnect, BluetoothGattCallback callback)

    Dos documentos:

    público BluetoothGatt connectGatt (Context context, boolean autoConnect, BluetoothGattCallback callback) Adicionado no nível API 18

    Conecte-se ao server GATT hospedado por este dispositivo. O chamador atua como cliente GATT. O callback é usado paira entregair resultados ao chamador, como o status da connection, bem como qualquer outra operação do cliente GATT. O método retorna uma instância do BluetoothGatt. Você pode usair o BluetoothGatt paira conduzir as operações do cliente GATT. parameters

    AutoConnect Se deve se conectair diretamente ao dispositivo remoto (falso) ou se conectair automaticamente assim que o dispositivo remoto ficair disponível (viewdadeiro).

    Gestor de callback GATT de callback que receberá chamadas de return assíncronas. Lança IllegalArgumentException se o callback for nulo

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.