# kbluetoothd: O Núcleo da Infra-estrutura Bluetooth do KDE

O KBluetoothD é uma peça central da plataforma de Bluetooth do KDE. Ele corre durante todo o tempo na bandeja do sistema e inicia outros serviços como o Servidor de OBEX ou o 'bemused' a pedido. O seu ícone na bandeja do sistema informa-o sobre as ligações Bluetooth de saída e também lhe dá um acesso rápido à configuração do serviço, os serviços usados recentemente, os dispositivos ao alcance, entre outras coisas.

Os programadores que desejem integrar o seu programa com o 'kdebluetooth' deverão dar uma vista de olhos na secção de programação para mais informações.

## Iniciar o 'kbluetoothd'

Pode iniciar o KBluetoothD escrevendo `kbluetoothd` na linha de comandos ou iniciando-o do menu K (normalmente em Sistema/kbluetoothd).

O KBluetoothD mostra um ícone na bandeja do sistema, mas se você não gostar dele, poderá desactivar o "Sempre visível" no menu de contexto do ícone da bandeja. Aí, o 'kbluetoothd' irá correr sem nenhuma interface de utilizador visível, mesmo depois de ter sido reiniciado. Para reactivar o ícone, basta iniciar o 'kbluetoothd' de novo. Se o ícone estiver desactivado, ele irá aparecer à mesma, durante o período de uma ligação Bluetooth.

Quando o 'kbluetoothd' estiver a correr e o sistema for abaixo, ele será reiniciado da próxima vez que você se ligar. Para impedir que o 'kbluetooth' se inicie automaticamente, basta fechá-lo e dizer-lhe para não iniciar quando você se ligar da próxima vez.

## O que o 'kbluetoothd' faz

A funcionalidade mais importante do 'kbluetoothd' é o seu meta-servidor de Bluetooth. Dado que o 'kbluetoothd' está a correr durante todo o tempo de qualquer forma, ele indica-lhe que existem ligações e põe em 'cache' os pedidos de nomes. A ideia é que o 'kbluetoothd' é o único programa relacionado com o Bluetooth que precisa de estar a correr o tempo todo, enquanto tem à mesma o acesso a todos os serviços activados.

### O meta-servidor

Se você sabe o que o 'inetd' faz num sistema Linux, então já poderá ter uma ideia do que o meta-servidor do 'kbluetoothd' é bom para fazer: Ele fica à espera de ligações por parte dos tratadores dos serviços e inicia-os quando for necessário. Por isso, você não irá precisar de ter um servidor de OBEX a correr durante todo o tempo, mas se alguém lhe enviar um ficheiro por OBEX, então esse servidor será iniciado automaticamente.

Existem várias razões para usar tal indirecção:

- Ele reduz os requisitos de memória, quando você usar vários serviços. A Plataforma de Bluetooth do KDE vem normalmente com quatro programas servidores: o servidor de OBEX, o cliente 'handsfree', o cliente 'bemused' e a ferramenta de conversação em série. Embora você possa precisar de alguns destes serviços apenas raramente, você poderá à mesma deixá-los activos sem qualquer custo.

- A sua bandeja de sistema não fica cheia de ícones raramente usados.

- Ele aumenta a segurança e torna o controlo de acesso mais fácil de gerir. O KBluetoothD irá por omissão abrir-lhe uma janela a pedir-lhe autorização se for recebida uma ligação. O utilizador poderá desactivar esta janela e permitir ou proibir permanentemente as ligações para cada serviço ou dispositivo. Isto dá a todas as aplicações geridas pelo 'kbluetoothd' um controlo de acesso de graça.

- Ele tem o potencial para tornar os serviços de Bluetooth mais fiáveis. Cada servidor é iniciado por cada ligação nova por isso, se um servidor estoirar, você poderá tentar de novo sem ter de o reiniciar.

  Para um servidor Web, poderá ser um ponto de atraso o facto de ser gerido pelo 'inetd', mas no caso do Bluetooth, a configuração ligação leva vários segundos, de qualquer forma, e todas as acções são normalmente iniciadas pelo utilizador, o que torna a utilização de um meta-servidor pouco crítica.

- O registo de serviços no servidor de SDP é muito simples. Veja por favor a secção de programação para saber como é que as aplicações geridas pelo 'kbluetoothd' se registam no servidor de SDP.

- Os programas servidores muito simples - até os 'scripts' -, podem ser utilizados para implementar um servidor de Bluetooth sem utilizar quaisquer funções relacionadas com Bluetooth.

Você pode activar/desactivar os serviços usados pelo 'kbluetoothd' com o seu módulo do centro de controlo na página de "serviços locais". Você também poderá configurar as opções específicas dos serviços se seleccionar um deles e carregar no botão "Configurar...".

Na página "Confirmação" pode personalizada forma como o kbluetoothd reage a novas ligações.

### O Serviço de Descoberta de Dispositivos

Para muitas aplicações é importante saber se um determinado dispositivo está ao alcance ou não, ou mesmo pode querer ser notificada se um dispositivo vai ficar ou deixar de ficar ao alcance. Ao contrário do USB, onde a plataforma do 'hotplug' o notifica de dispositivos novos, não existe nenhum serviço desses para o Bluetooth.

O 'kbluetoothd' preenche esta lacuna com o Serviço de Descoberta de Dispositivos. Ele irá procurar periodicamente pelos dispositivos mais próximos e manter uma lista com os que estão actualmente ao alcance. Para aceder a um dispositivo descoberto, carregue com o &RMB; no ícone do 'kbluetoothd' na bandeja e veja o menu "Abrir um Recente". Este menu consiste numa secção para os serviços acedidos recentemente (como "obex ftp no MeuTelefone") e - se existirem de facto alguns serviços descobertos - uma segunda secção acima com uma lista de dispositivos. Se carregar num deles irá mostrar os serviços desses dispositivo no &konqueror;.

No módulo do centro de controlo do 'kbluetoothd' você poderá configurar se e como é que o 'kbluetoothd' irá procurar pelos dispositivos ("Actualizar periodicamente a lista de vizinhos"). Recomenda-se o uso de intervalos inferiores a um minuto aqui, caso contrário as outras aplicações poderão ter problemas ocasionais ao procurar os dispositivos. Isto acontece porque a maioria dos dispositivos não ficam à espera que as outras aplicações usem o Bluetooth ao mesmo tempo.

Muitos dos dispositivos são invisíveis por omissão por razões de privacidade/segurança. Neste caso, o dispositivo não será detectado ao procurar pelos dispositivos. Em vez disso, o 'kbluetoothd' tem de tentar aceder a cada um desses dispositivos individualmente. Você poderá adicionar um dispositivo à lista de dispositivos invisíveis se carregar em "Opções adicionais de procura para os dispositivos invisíveis". Lembre-se que você terá de configurar o seu dispositivo para ser descoberto temporariamente ou terá de saber o seu endereço de 'hardware' para ser capaz de o adicionar à lista.

Isto irá evitar que os outros programas procurem pelos dispositivos ou configurem mesmo uma ligação a outro dispositivo durante cerca de 30 segundos por dispositivo se o dispositivo não estiver acessível de momento. Como tal, você deverá usar intervalos grandes aqui. 10 minutos parecem ser um valor razoável. Basta tentar você mesmo e descobrir quão baixo poderá ser o intervalo, até que comece a incomodá-lo.

Ter apenas uma lista dos dispositivos acessíveis de momento não é assim tão útil. Em vez disso, você poderá usar o serviço de descoberta de dispositivos para executar Tarefas de Descoberta quando um dispositivo fica acessível ou desaparece. Estas tarefas de descoberta são programa simples. Você poderá criar facilmente o seu próprio 'script' - veja a secção de programação sobre os programas de descoberta. Mas o 'kbluetoothd' já vem com alguns programas, incluindo:

Protocolo de descoberta

- Este programa irá criar uma página de HTML com algumas informações técnicas sobre cada dispositivo, quando é descoberto pela primeira vez. Você pode usar este programa para saber quem está a usar Bluetooth perto de si. Se tiver este programa activo o tempo todo não irá incomodar muito, dado que ele só irá tentar aceder ao dispositivo quando for descoberto pela primeira vez ou depois de você ter apagado a página HTML correspondente.

Kopete_AutoAway

- Configura o estado de disponibilidade do kopete dependendo se você (com o seu telefone) estão perto ou não.

Photo_Copy

- Este programa irá procurar numa dada pasta no seu telemóvel, através do 'kio_obex', por ficheiros novos e copiá-los-á para uma directoria local. Também muda o nome dos mesmos, de acordo com a data do ficheiro. Foi criado este programa para o Nokia 6230 do autor. Se o quiser usar para o seu próprio telemóvel, você provavelmente terá de alterar o programa em vários pontos.

Protector de Ecrã

- Inicia ou mata o protector de ecrã sempre que um dos dispositivos monitorizados ficam perto ou desaparecem.

A maioria dos programas precisa de ser configurado primeiro para funcionar correctamente. Se carregar em "configurar" irá normalmente abrir o 'kedit' com a parte de configuração do programa. Tenha também em atenção que você poderá ter de limitar os dispositivos apresentados para cada tarefa, se você não quiser que o programa seja executado quando alguém passar com um telefone Bluetooth ligado.

### A lista "serviços utilizados mais recentemente"

Você pode aceder rapidamente aos serviços que usou antes de os procurar no sub-menu "Usados recentemente" do ícone do 'kbluetoothd' na bandeja. Se você já enviou alguns ficheiros para o seu telemóvel com o nome "O Meu Telefone" através do 'kbtobexclient', então você irá encontrar um item do menu com o nome "Obex push client - O meu telefone", o qual irá iniciar o 'kbtobexclient' e ligar-se-á imediatamente ao seu telefone sem um processo de pesquisa que consuma tempo.

Por favor repare que o 'kbluetoothd' mostra todos os serviços utilizados recentemente, independentemente do dispositivo respectivo estar ou não no alcance.

Esta característica tem que ser suportada pela aplicação respectiva.

### Monitor de ligações

Você pode ver se existe actualmente alguma ligação de Bluetooth se ver o ícone do 'kbluetoothd' na bandeja. Ele irá piscar se uma ligação estiver a ser estabelecida e ficará azul se a ligação ficar configurada.

Pode obter mais informações acerca da ligação actual carregando com o botão direito no ícone da bandeja e seleccionando "Detalhes da ligação...".

O que o 'kbluetoothd' mostra aqui são ligações de ACL, não ligações de RFCOMM. Se você estiver ligado a um único dispositivo com vários programas (o 'handsfree' e o 'bemused', por exemplo), isto irá ser mostrado à mesma como uma ligação, dado que só poderá existir uma ligação ACL a um único dispositivo numa dada altura.

## Configurar o 'kbluetoothd'

Normalmente, o 'kbluetoothd' e os servidores geridos por eles deverão funcionar autonomamente. Mas existem ainda algumas opções que você poderá alterar. Para configurar o 'kbluetoothd', você poderá tanto usar o centro de controlo do KDE como ir a Internet e Rede -> Serviços de Bluetooth ou carregar com o &RMB; no ícone do 'kbluetoothd' na bandeja e seleccionar Configuração -> Serviços...

### Confirmação de recepção de ligações

Nesta página, você poderá alterar a configuração da confirmação para as ligações recebidas. Por omissão, o 'kbluetoothd' irá mostrar uma janela de confirmação antes de o programa servidor (como por exemplo, o OBEX Push Server) ser iniciado. Aqui você poderá desactivar esta janela de confirmação para alguns dispositivos/serviços ou dizer ao 'kbluetoothd' para rejeitar silenciosamente as ligações recebidas.

Novas entradas de dispositivos serão adicionadas se seleccionar a opção "Aceitar sempre" de uma mensagem de confirmação.

### Serviços Locais

Nesta página você poderá activar ou desactivar os serviços únicos de Bluetooth que são geridos pelo 'kbluetoothd'. Alguns serviços também oferecem algumas opções de configuração, como o servidor 'bemused', por exemplo. Nesse caso, o Configurar... ficará activo quando você seleccionar o serviço respectivo.

Dado que o 'kbluetoothd' atribui automaticamente canais de RFCOMM para os serviços, o canal usado por um serviço poderá alterar quando você estiver a usar outros servidores de Bluetooth. Se você precisar de saber qual o canal que estava atribuído a algum serviço, esta janela dir-lhe-á qual é.