Pular para o conteúdo principal

Bluetooth

Procure dispositivos Bluetooth Low Energy nas proximidades, inspecione a intensidade do sinal e os dados de anuncio, navegue pelos servicos e caracteristicas GATT e visualize dados ao vivo de perifericos conectados.

iPhoneiPadMacApple Vision ProApple TVApple Watch
Tela de visao geral com controles de busca e dispositivos proximos ordenados por RSSI.
Cada linha de dispositivo mostra seu nome, RSSI e se e conectavel.

Visao geral

A ferramenta Bluetooth usa o framework CoreBluetooth da Apple para atuar como um central BLE (Bluetooth Low Energy) e buscar perifericos proximos. Ela exibe todos os dispositivos que descobre, junto com a intensidade do sinal em tempo real (RSSI), dados de anuncio e status de conexao. Voce pode conectar a perifericos conectaveis para navegar seus servicos e caracteristicas GATT, ler valores, assinar notificacoes e inspecionar dados do fabricante.

Sumario


Tela de Visao Geral

A tela de visao geral e a visualizacao principal da ferramenta Bluetooth. Ela contem uma barra de busca, um cartao de status com controles de varredura e uma lista rolavel de dispositivos descobertos.

Um campo de texto no topo da tela filtra a lista de dispositivos por nome. Digitar uma consulta restringe instantaneamente a lista aos dispositivos cujo nome anunciado ou nome do periferico contem o texto de busca (sem diferenciacao de maiusculas e minusculas). Um botao de limpar aparece quando o campo nao esta vazio.

Cartao de Status do Bluetooth

O cartao de status exibe:

  • Rotulo Status do Bluetooth com o estado atual do radio, codificado por cores:
    • Ligado (verde) — o Bluetooth esta ativo e pronto para varredura.
    • Desligado (vermelho) — o radio Bluetooth esta desligado.
    • Nao Autorizado (laranja) — o usuario negou permissao Bluetooth para o app.
    • Nao Suportado (vermelho) — o hardware do dispositivo nao suporta Bluetooth.
    • Desconhecido / Reiniciando (cinza) — o sistema ainda esta determinando o estado do Bluetooth.
  • Um botao de controle de varredura (visivel apenas quando o Bluetooth esta Ligado):
    • Parar Varredura (vermelho) — para a varredura ativa.
    • Iniciar Varredura (verde) — inicia a varredura por perifericos proximos.

A varredura inicia automaticamente quando a ferramenta e aberta e o Bluetooth esta ligado.

Lista de Dispositivos

Os dispositivos descobertos aparecem em uma lista rolavel, ordenada por RSSI (sinal mais forte primeiro). A lista e atualizada em tempo real conforme novos dispositivos sao encontrados ou dispositivos existentes atualizam seus dados de anuncio.

Linha do Dispositivo

Cada dispositivo e exibido como um cartao contendo:

  • Um icone Bluetooth dentro de um emblema circular. Um arco branco sobrepoe o circulo, preenchendo proporcionalmente a intensidade do sinal do dispositivo (0-100%).
  • Nome do dispositivo — o nome local anunciado ou nome do periferico. Dispositivos que nao transmitem um nome aparecem como [No Name].
  • RSSI — a intensidade do sinal recebido em dB (ex: RSSI: -43 dB).
  • Um indicador de status no canto inferior esquerdo, mostrando um dos seguintes:
    • Conectado (verde) — o dispositivo esta atualmente conectado.
    • Conectavel (azul) — o dispositivo anuncia que aceita conexoes.
    • Servicos: N — o numero de servicos GATT que o dispositivo anuncia (mostrado quando servicos estao presentes mas o dispositivo ainda nao esta conectado).
    • (sem rotulo) — o dispositivo nao e conectavel e nao anuncia servicos.
  • Um indicador na direita:
    • Um icone verde de check se o dispositivo estiver conectado.
    • Um chevron (>) se o dispositivo for conectavel (toque para abrir detalhes).
    • Texto Nao Conectavel se o dispositivo nao aceitar conexoes.

Toque em qualquer linha de dispositivo para navegar ate a Tela de Detalhes do Dispositivo.

Estados Vazios

A visao geral mostra estados vazios contextuais:

  • Varrendo — um icone de lupa com animacao de carregamento enquanto a varredura inicial esta em andamento e nenhum dispositivo foi encontrado ainda.
  • Bluetooth Desligado / Nao Suportado — um icone Bluetooth cortado com o estado atual e um aviso para ligar o Bluetooth.
  • Varredura Parada — um icone Bluetooth com um botao Iniciar Varredura quando o Bluetooth esta ligado mas a varredura foi parada manualmente e nao ha dispositivos na lista.

Tela de Detalhes do Dispositivo

Tocar em uma linha de dispositivo abre uma tela de detalhes dedicada. A tela e dividida em uma area de cabecalho, um medidor de intensidade do sinal e tres abas de conteudo.

Cabecalho e Conexao

O cabecalho contem:

  • Um botao de voltar (< Devices) para retornar a tela de visao geral.
  • O nome do dispositivo exibido em destaque.
  • Um indicador de estado de conexao — um ponto colorido ao lado de um rotulo:
    • Conectado (verde)
    • Conectando (laranja)
    • Desconectado (vermelho)
    • Desconectando (laranja)
  • Um botao Conectar / Desconectar (mostrado apenas para dispositivos conectaveis):
    • Conectar (azul) — inicia uma conexao BLE. Um spinner de carregamento e mostrado enquanto a conexao esta sendo estabelecida.
    • Conectando... (azul, desabilitado) — exibido durante a tentativa de conexao.
    • Desconectar (vermelho) — encerra a conexao ativa.

Quando uma conexao e estabelecida, a ferramenta descobre automaticamente todos os servicos GATT e suas caracteristicas. Caracteristicas legiveis sao lidas imediatamente, e caracteristicas que suportam notificacoes sao assinadas automaticamente.

Medidor de Intensidade do Sinal

A secao de intensidade do sinal fornece uma visualizacao detalhada e em tempo real do sinal de radio do dispositivo:

  • Medidor circular — um arco que preenche de 0% a 100% com um gradiente angular (vermelho para laranja para amarelo para verde). O valor atual do RSSI em dBm e exibido no centro.

  • Distancia aproximada — uma estimativa legivel derivada do valor RSSI:

    Faixa de RSSIRotulo
    -30 a -50 dBmMuito Perto
    -51 a -65 dBmPerto
    -66 a -80 dBmMedio
    -81 a -90 dBmLonge
    Abaixo de -90 dBmMuito Longe
  • Barras de sinal — um indicador de 5 barras que preenche com base na porcentagem de intensidade do sinal.

  • Qualidade do sinal — um rotulo de texto: Excelente (>80%), Bom (>60%), Razoavel (>40%), Fraco (>20%) ou Muito Fraco (<=20%).

  • RSSI — o valor bruto em dBm.

  • Potencia TX — o nivel de potencia de transmissao em dBm, se o dispositivo o anunciar. Este valor representa a intensidade do sinal a 1 metro do transmissor e pode ser usado para estimar a distancia.

  • Historico do Sinal — um grafico de barras rolante das ultimas 20 leituras de RSSI, codificado por cores (verde >= -60, amarelo >= -75, vermelho < -75). Isso ajuda a visualizar a estabilidade do sinal ao longo do tempo.

Aba Info

A aba Info exibe informacoes gerais sobre o dispositivo, organizadas como linhas chave-valor:

CampoDescricao
NomeO nome anunciado ou do periferico (ou [No Name]).
IdentificadorO UUID do periferico atribuido pelo CoreBluetooth. Este e um identificador local e nao e o endereco MAC real do dispositivo.
RSSIIntensidade do sinal recebido atual em dB.
Potencia TXPotencia de transmissao em dBm (mostrado apenas se anunciado pelo dispositivo).
ConectavelSe o dispositivo aceita conexoes BLE (Sim / Nao).
EstadoEstado atual da conexao (Conectado, Conectando, Desconectado, Desconectando).
DescobertoTimestamp de quando o dispositivo foi visto pela primeira vez durante esta sessao de varredura.
Ultima AtualizacaoTimestamp da atualizacao mais recente de anuncio ou RSSI.

Abaixo das linhas chave-valor, duas secoes adicionais aparecem quando o dispositivo fornece os dados correspondentes:

  • Servicos Anunciados — uma lista de UUIDs de servicos GATT que o dispositivo inclui em seus pacotes de anuncio. Servicos padrao conhecidos sao mostrados com seu nome legivel ao lado do UUID (ex: 180F (Battery Service), 180A (Device Information)). Veja Servicos Reconhecidos para a lista completa.
  • Dados do Fabricante — os dados brutos especificos do fabricante do anuncio, exibidos como uma string hexadecimal. Os dois primeiros bytes codificam o identificador da empresa Bluetooth SIG (little-endian).

Aba Servicos

A aba Servicos esta disponivel somente quando o dispositivo esta conectado. Ela mostra a arvore completa de servicos e caracteristicas GATT descobertos durante a conexao.

Cada servico e exibido como uma linha expansivel:

  • Um icone colorido indicando a categoria do servico:
    • Azul — Servicos genericos (Generic Access 1800, Generic Attribute 1801)
    • Verde — Battery Service (180F)
    • Laranja — Device Information (180A)
    • Roxo — Servicos especificos do fornecedor (UUIDs comecando com FE)
    • Cinza — Outros / servicos desconhecidos
  • O nome do servico (resolvido a partir do UUID para servicos conhecidos) e a string UUID bruta.
  • Um emblema mostrando o numero de caracteristicas pertencentes a esse servico.
  • Um chevron que gira quando o servico esta expandido.

Servicos Reconhecidos

UUIDNome do Servico
1800Generic Access
1801Generic Attribute
180ADevice Information
180FBattery Service
1812HID (Human Interface Device)
1813Scan Parameters
1819Location and Navigation
181CUser Data
FE59Apple Notification Center

Expandir um servico revela suas caracteristicas. Cada linha de caracteristica mostra:

  • Um icone colorido baseado na propriedade principal (roxo para leitura+escrita, azul para somente leitura, verde para somente escrita, laranja para somente notificacao, cinza caso contrario).
  • O nome da caracteristica (resolvido a partir do UUID para caracteristicas GATT conhecidas) e a string UUID bruta.
  • Rotulos de propriedade — pequenos rotulos coloridos para cada propriedade suportada:
    • Read (azul) — o valor pode ser lido sob demanda.
    • Write (verde) — o valor pode ser escrito com confirmacao.
    • Write No Response (verde claro) — o valor pode ser escrito sem confirmacao.
    • Notify (laranja) — a caracteristica pode enviar atualizacoes ao central.
    • Indicate (laranja claro) — como Notify mas com confirmacao.
    • Auth (roxo) — a caracteristica requer escritas assinadas autenticadas.
  • Um botao de olho para alternar (mostrado quando a caracteristica tem um valor). Ao tocar, revela o valor atual da caracteristica, exibido em multiplos formatos:
    • Hex — a sequencia bruta de bytes.
    • String — uma interpretacao UTF-8, se os bytes formarem texto valido.
    • Numerico — interpretacao automatica baseada no comprimento dos bytes:
      • 1 byte: valor UInt8
      • 2 bytes: valor UInt16
      • 4 bytes: valor UInt32 e valor Float

Caracteristicas Reconhecidas

UUIDNome da Caracteristica
2A00Device Name
2A01Appearance
2A04Peripheral Preferred Connection Parameters
2A05Service Changed
2A19Battery Level
2A23System ID
2A24Model Number String
2A25Serial Number String
2A26Firmware Revision String
2A27Hardware Revision String
2A28Software Revision String
2A29Manufacturer Name String
2A2AIEEE 11073-20601 Regulatory Certification Data List
2A50PnP ID

Aba Dados

A aba Dados mostra dados interpretados ao vivo do dispositivo conectado. Se o dispositivo nao estiver conectado, um aviso e exibido com um botao Conectar (para dispositivos conectaveis) ou uma mensagem informativa.

Quando conectado, a aba mostra ate tres cartoes:

  • Dados do Fabricante — a carga util especifica do fabricante do anuncio:

    • ID do Fabricante — resolvido a partir dos dois primeiros bytes (little-endian) dos dados do fabricante. IDs conhecidos incluem Apple (0x004C), Microsoft (0x0006), Samsung (0x0075), Xiaomi (0x038F) e Bosch (0x01D7). IDs desconhecidos sao mostrados em hex (ex: ID: 0x1234).
    • Dados Brutos — o dump hexadecimal completo dos bytes dos dados do fabricante.
    • Visualizacao de bytes — um grafico de barras horizontal onde cada barra representa um byte. A altura da barra e proporcional ao valor do byte (0-255), fornecendo uma impressao digital visual rapida dos dados.
  • Valores das Caracteristicas — uma lista de todas as caracteristicas que tem um valor legivel. Cada entrada mostra:

    • O nome da caracteristica (ou UUID se desconhecido).
    • O valor interpretado (como byte, UInt16, UInt32/Float, string UTF-8 ou hex dependendo do comprimento dos dados).
    • Um pequeno grafico de barras de bytes para valores ate 8 bytes, com barras codificadas por cor conforme magnitude (azul < 30%, verde < 60%, amarelo < 80%, vermelho >= 80%).
    • Os valores sao atualizados automaticamente para caracteristicas que suportam notificacoes.
  • Informacoes de Conexao — metadados de tempo e sinal:

    • Descoberto — o horario em que o dispositivo foi visto pela primeira vez, com o tempo decorrido desde a descoberta.
    • Ultima Atualizacao — o horario da atualizacao de dados mais recente, com Potencia TX se disponivel.

Permissoes e Requisitos

  • Permissao Bluetooth — o CoreBluetooth requer que o usuario conceda acesso ao Bluetooth. Se a permissao for negada, o Lirum mostra uma tela de permissoes com um botao para abrir as Configuracoes do iOS para que o usuario possa reativar o acesso.
  • Radio Bluetooth — se o Bluetooth estiver desligado, a ferramenta permanece acessivel mas os controles de varredura ficam desabilitados e um estado vazio solicita ao usuario que ligue o Bluetooth. Nenhum portao de permissao e mostrado neste caso.
  • A permissao Bluetooth e gerenciada pelo sistema; nao ha um botao explicito de "solicitar permissao". O prompt do sistema aparece automaticamente na primeira vez que o CoreBluetooth e inicializado.

Detalhes Tecnicos

  • A ferramenta atua como um Central BLE usando CBCentralManager. Ela varre todos os perifericos proximos (scanForPeripherals(withServices: nil)), ou seja, descobre dispositivos independentemente de quais servicos eles anunciam.
  • Os valores de RSSI (Indicador de Intensidade do Sinal Recebido) tipicamente variam de -30 dBm (muito forte, dispositivo muito proximo) a -100 dBm (muito fraco, dispositivo distante ou obstruido). A ferramenta normaliza esta faixa para uma escala de 0-100% usando a formula: (RSSI + 100) / 70.
  • Para dispositivos conectados, o RSSI e consultado a cada 2 segundos usando readRSSI(). Um filtro de ruido suprime atualizacoes menores que 2 dB para reduzir tremores visuais.
  • Na conexao, a ferramenta chama discoverServices(nil) para enumerar todos os servicos GATT, depois discoverCharacteristics(nil, for:) em cada servico. Caracteristicas legiveis sao lidas automaticamente via readValue(for:), e caracteristicas com capacidade de notificacao sao assinadas via setNotifyValue(true, for:).
  • A Potencia TX (CBAdvertisementDataTxPowerLevelKey) representa a intensidade do sinal a 1 metro do transmissor. Quando ambos Potencia TX e RSSI sao conhecidos, a diferenca pode ser usada para estimar a perda de caminho e a distancia aproximada.
  • Os Dados do Fabricante (CBAdvertisementDataManufacturerDataKey) seguem o formato Bluetooth SIG: os dois primeiros bytes sao o identificador da empresa em ordem little-endian, seguidos pelos bytes da carga util especifica do fornecedor.
  • O identificador do periferico mostrado na aba Info e um UUID atribuido pelo CoreBluetooth no dispositivo local. E estavel entre inicializacoes do app para o mesmo dispositivo mas nao e o endereco MAC Bluetooth real (que o iOS nao expoe).

Notas e Limitacoes

  • O que voce pode ver depende do que cada periferico anuncia e do que o iOS expoe via CoreBluetooth. Alguns dispositivos anunciam dados minimos.
  • Muitos dispositivos aparecem como [No Name] porque nao incluem um nome local em seus pacotes de anuncio.
  • As estimativas de distancia aproximada sao orientacoes gerais baseadas em limites de RSSI. As distancias reais variam significativamente dependendo do ambiente, obstaculos, orientacao da antena e potencia de transmissao.
  • Nem todos os dispositivos conectaveis conectam com sucesso. Alguns requerem emparelhamento previo nas Configuracoes do iOS, e alguns podem rejeitar conexoes de centrais desconhecidos.
  • Dispositivos Bluetooth classicos (nao BLE) nao sao visiveis atraves do CoreBluetooth e nao aparecem nos resultados da varredura.
  • Os valores RSSI podem flutuar rapidamente devido a interferencia multipercurso, absorcao corporal e outros fatores ambientais. O grafico de historico do sinal ajuda a suavizar visualmente estas variacoes.

Solucao de Problemas

  • Nenhum dispositivo encontrado — certifique-se de que o Bluetooth esta ligado, permaneca na tela do Bluetooth por alguns segundos e toque em Iniciar Varredura se a varredura tiver sido parada.
  • Permissao negada — toque no botao Abrir Configuracoes na tela de permissoes e reative o acesso ao Bluetooth para o Lirum nas Configuracoes de Privacidade do iOS.
  • Falha na conexao — o dispositivo pode requerer emparelhamento nas Configuracoes do iOS primeiro, pode nao suportar conexoes de apps de terceiros, ou pode ter saido do alcance.
  • Aba de servicos vazia — alguns dispositivos nao expoem servicos ou atrasam a descoberta de servicos. Aguarde alguns segundos apos conectar. Se nenhum servico aparecer, o dispositivo pode nao suportar perfis GATT padrao.
  • Valores das caracteristicas mostram apenas hex — a ferramenta tenta interpretar valores como texto UTF-8 e tipos numericos comuns. Se nenhuma dessas interpretacoes se aplicar, o dump hexadecimal bruto e mostrado.