Kapitel 5. Komponenter

Indholdsfortegnelse

Kbluetoothd: Kernen i KDE's bluetooth-skelet
Start af kbluetoothd
Hvad kbluetoothd gør
Indstilling af kbluetoothd
Bluetooth/SDP-kioslaves: Søg efter enheder og tjenester
Brug af Bluetooth/SDP-kioslaver
Avancerede emner
Begrænsninger for øjeblikket
OBEX-kioslave: Gennemsøg mapper over Bluetooth
Generelt
URL-format
Tips & Tricks
Begrænsninger
OBEX Push-klient: Send filer
Hvad er dette?
OBEX Push-server: Modtag filer
Brug af OBEX Push server
Bemused server: kontrollér din medie-afspiller med din telefon
kbtserialchat: Et meget enkelt chat-værktøj
Brug af chat-værktøjet
IrMCSync Konnector for Kitchensync
Vi har brug for fejlretningsinfo.
Kompilering.
Brug af KitchenSync.
Yderligere integrations- og kommandolinjeværktøjer
kioclient: Adgang til I/O-slave-skelettet fra scripter
kbtsearch: Søgning efter enheder inde i scripter
kbtfax: Sende fax-breve med KDE-programmer

Kbluetoothd: Kernen i KDE's bluetooth-skelet

KBluetoothD er en central del af KDE's Blueto7oth skelet. Den kører hele tiden i statusfeltet og starter andre tjenester såsom OBEX-server, eller bemused efter behov. Dens statusikon fortæller dig om bluetooth-forbindelser og giver dig også hurtig adgang til tjenestens indstilling, nyligt brugte tjenester og mere.

Programmører der ønsker at integrere deres program med kdebluetooth, skulle kigge i udvikler-afsnittet for mere information.

Start af kbluetoothd

Du kan starte KBluetoothD ved at skrive kbluetoothd på kommandolinjen eller ved at starte den fra K-Menuen (sædvanligvis System/kbluetoothd).

KBluetoothD viser en ikon i statusfeltet, men hvis du ikke kan lide det kan du deaktivere "Altid synlig" i sammenhængsmenuen for statusikonen. Så vil kbluetoothd køre uden nogen synlig brugergrænseflade, selv efter den er genstartet. For at aktivere ikonen igen, startes kbluetoothd blot igen. Hvis ikonen blev deaktiveret, vil den stadig være til syne for varigheden af en bluetooth-forbindelse.

Når Kbluetoothd kører indtil systemet lukkes ned, genstartes det automatisk næste gang du logger på. For at forhindre Kbluetoothd i at starte automatisk igen, skal du blot afslutte det og bede det om ikke at startes igen når du logger på næste gang.

Hvad kbluetoothd gør

Den vigtigste funktion i kbluetoothd er dens Bluetooth metaserver. Da kbluetoothd kører hele tiden alligevel, overvåger den også din Bluetooth adaptor, fortæller dig om der er forbindelser og cacher navneforspørgsler. Idéen er at kbluetoothd er det eneste bluetooth-relaterede program det behøver at køre hele tiden, og stadig have adgang til alle aktiverede tjenester.

Metaserveren

Hvis du ved hvad inetd gør i et Linux-system, så har du allerede en idé om hvad metaserveren for kbluetoothd er nyttig til: Den venter på indkommende forbindelser på de rigtige tjenesters vegne og starter dem når det er nødvendigt. Så du behøver altså ikke at have en obex-server kørende hele tiden, men når nogen sender dig en fil via OBEX, så vil OBEX-serveren blive startet automatisk.

Der er adskillige grunde til at bruge en sådan omdirigering:

  • Det reducerer hukommelseskravet når du bruger adskillige tjenester. KDE's Bluetooth skelet kommer for øjeblikket med fire serverprogrammer: obex-serveren, handsfree-klienten, bemused-klienten og det serielle chat-værktøj. Mens du måske kun sjældent har brug for nogle af disse tjenester, kan du stadig lade dem være slået til uden omkostning.

  • Dit statusfelt vil ikke blive rodet til med masser af sjældent brugte ikoner.

  • Det forbedrer sikkerheden og gør adgangskontrol nemmere at håndtere. KBluetoothD vil som standard få en dialog frem der beder om tilladelse hvis der er en indkommende forbindelse. Brugeren kan sætte denne dialog ud af kraft og permanent tillade eller forbyde forbindelser for hver tjeneste og enhed. Dette giver hvert program der håndteres af kbluetoothd gratis adgangskontrol.

  • Det har potentialet at gøre bluetooth-tjenester mere stabile. Hver server startes for hver ny forbindelse, så hvis en server bryder sammen, kan du prøve igen uden at skulle genstarte den.

    Det kan være en flaskehals for en webserver at håndteres af inetd, men i tilfældet Bluetooth tager det alligevel flere sekunder at oprette en forbindelse og hver handling initieres oftest af brugeren, hvilket gør det ukritisk at bruge en metaserver.

  • Tjeneste-registrering med SDP-serveren er meget enkelt. Se venligst udviklerafsnittet for hvordan kbluetoothd-managed programmet registrerer med SDP-serveren.

  • Simple serverprogrammer - selv scripter - kan bruges til at implementere en bluetooth-server uden at bruge Bluetooth-relaterede funktioner overhovedet.

Du kan aktivere/deaktivere tjenester brugt af kbluetoothd i kontrolcenter-modulet under fanebladet "Lokale tjenester". Der kan du også indstille tjenestespecifikke tilvalg ved at vælge en tjeneste og klikke på "Indstil..."-knappen.

Under fanebladet "Bekræftelse" kan du tilpasse hvordan kbluetoothd vil reagere på indkommende forbindelser.

Enhedsopdagelsestjenesten

Det er vigtigt for mange programmer at vide om en given enhed for øjeblikket er indenfor rækkevidde eller ej, eller til og med at få styr på om en enhed kommer indenfor rækkevidde eller forsvinder. I modsætning til USB, hvor hotplug-skelette underretter dig om nye enheder, er der ingen sådan tjeneste for Blåtand.

Kbluetoothd udfylder i dette hul med tjenesten til at opdage enheder. Den søger periodisk efter enheder i nærheden og holder en liste med dem som for øjeblikket er indenfor rækkevidde. For at få adgang til en enhed der er opdaget, højreklikkes på Kbluetoothds ikon i statusfeltet og kig i menuen "Åbn seneste". Menuen består af en del med tjenester som for nylig er blevet brugt (såsom "OBEX FTP på min telefon") og, hvis der virkelig er enheder som allerede er opdaget, en anden del ovenfor med en liste over enheder. Ved at klikke på en af dem vises enhedens tjenester i Konqueror.

I Kbluetoothds modul i kontrolcentret kan du indstille om og hvor ofte Kbluetoothd søger efter enheder ("Opdatér naboliste periodisk"). Jeg anbefaler ikke at bruge et interval kortere end en minut her, ellers kan andre programmer sommetider få problemer med at søge efter enheder. Dette skyldes at de fleste enheder ikke forventer sig at andre program skal bruge Bluetooth samtidigt.

Mange enheder kan ikke opdages normalt af integritets- og sikkerhedsgrunde. I dette tilfælde opdages enheden ikke ved søgning efter enheder. I stedet skal Kbluetoothd forsøge at få adgang til hver af enhederne individuelt. Du kan tilføje en enhed i listen med enheder som ikke kan opdages ved at klikke på "Yderligere søgetilvalg for enheder som ikke kan opdages". Bemærk at du enten midlertidigt skal indstille enheden så at den kan opdages, eller kende dens hardware-adresse for at kunne tilføje den i listen.

Dette forhindrer at andre programmer søger efter enheder eller til og med opretter en forbindelse med en anden enhed i cirka 30 sekunder for hver enhed hvis enheden ikke kan nås for øjeblikket. Derfor bør du bruge et ganske langt interval her. Ti minutter synes at være en rimelig værdi. Forsøg selv og finde ud af hvor kort intervallet kan være inden det begynder at blive til besvær.

Kun at have en liste over enheder som for øjeblikket kan nås er ikke særlig nyttigt. Du kan i stedet bruge opdagelsestjenesten til at køre opdagelsesjob når en enhed kommer indenfor rækkevidde eller forsvinder. Du kan enkelt skrive egne scripter, se afsnittet for udviklere om opdagelses-scripter. Kbluetoothd levereres dog allerede med nogle scripter, blandt andre:

Opdagelsesprotokol

Dette script laver en HTML-side med noget teknisk information for hver enhed når den opdages første gangen. Du kan bruge det hvis du er nysgerrig efter hvilke andre der bruger Bluetooth i nærheden. At have scriptet i gang hele tiden skader ikke nævneværdigt, eftersom det kun forsøger at få adgang til enheden når den opdages første gang eller efter du slettet tilsvarende HTML-side.

Kopete_AutoAway

Dette indstiller tilgængelighedsstatus i Kopete, afhængig af om du (sammen med din telefon) er indenfor rækkevidde eller ej.

Photo_Copy

Dette script kontrollerer en mappe i din telefon via OBEX I/O-slaven for om der er nye filer, og kopierer dem til en lokal mappe. Det ændrer også navn på dem med filens dato som filnavn. Jag skrev dette script for min Nokia 6230. Hvis du vil bruge det til din egen telefon, skal du formodentlig ændre scriptet på mange steder.

Screensaver

Starter eller afslutter pauseskærmen eller skærmlåsningen hver gang nogen af de overvågede enheder kommer indenfor rækkevidde eller forsvinder.

De fleste scripter skal først tilrettes for at virke rigtigt. Klik på "configure" gør oftest kun at en editor dukker op med scriptets indstillingsdel. Var også klar over at du kan behøve at begrænse enhederne som rapporteres til hvert job, hvis du ikke ønsker at scriptet skal køres når en anden går forbi med en tændt Bluetooth-telefon.

List af "de nyligst brugte tjenester"

Du kan få hurtig adgang til tjenester du har brugt tidligere ved at finde dem i undermenuen "Nyligt brugte" i kbluetoothd's statusikon. Hvis du allerede sendte nogle filer til din mobiltelefon der hedder "Min telefon" via kbtobexclient, så vil du finde et menupunkt med navnet "Obex push-klient - Min telefon", hvilket vil starte kbtobexclient og øjeblikkeligt forbinde til din telefon uden en tidskrævende forespørgselsproces.

Bemærk venligst at kbluetoothd viser alle nyligt brugte tjenester, uanset om de respektive enheder er indefor rækkevidde eller ej.

Denne funktion skal være understøttet af de respektive programmer.

Forbindelseovervågning

Du kan se om der er en bluetooth-forbindelse for øjeblikket ved at kigge på kbluetoothd's statusikon. Den vil blinke hvis en forbindelse er ved at blive etableret og blive blå når forbindelsen er sat op.

Du kan få mere information om den øjeblikkelige forbindelse ved at højre-klikke på statusikonen og vælge "Forbindelsesdetaljer...".

Det kbluetoothd viser her er ACL-link, ikke Rfcomm-forbindelser. Hvis du er forbundet til en enkelt enhed med adskillige programmer (handsfree og bemused for eksempel), vil dette stadig blive vist som én forbindelse, da der kun kan være et ACL-link til en enkelt enhed af gangen.

Indstilling af kbluetoothd

Sædvanligvis vil kbluetoothd og de servere der håndteres af den virke uden videre. Men der er stadig nogle muligheder du kan ændre. For at indstille kbluetooth, kan du enten bruge KDE's kontrolcenter og gå til Internet & Netværk -> Bluetooth-tjenester, eller højreklikke på kbluetoothd's statusikon og vælge Indstilling -> Tjenester...

Bekræftelse af indkommende forbindelser

I dette faneblad kan du ændre bekræftelsesopsætningen for indkommede forbindelser. Som standard vil kbluetoothd få en bekræftelsesdialog frem før det egentlige serverprogram (såsom OBEX's push-server) bliver startet. Her kan du deaktivere denne bekræftelsesdialog for nogle enheder/tjenester eller bede kbluetoothd om stille at afslå indkommende forbindelser.

Nye enhedsindgange vil blive tilføjet når du vælger afkrydsningsfeltet "Acceptér altid" i en bekræftelsesdialog der kommer frem.

Lokale tjenester

I dette faneblad kan du aktivere eller deaktivere enkelte Bluetooth-tjenester som håndteres af kbluetoothd. Nogle tjenester sørger også for andre indstillingsmuligheder, såsom for eksempel bemused-server. I dette tilfælde vil Indstil... blive aktiveret når du vælger de respektive tjenester.

Da kbluetoothd automatisk tilknytter rfcomm-kanaler til tjenesterne, kan kanalen der bruges til en tjeneste blive ændret når du bruger andre bluetooth-servere. Hvis du har brug for at vide hvilken kanal der blev knyttet til en tjeneste, vil denne dialog fortælle dig det.