Mpango wa kufanya kazi na bluetooth kwa android. Mbinu za Bluetooth: mbinu ndogo za meno ya bluu

Bluetooth hutumiwa kuhamisha habari na sauti kati ya vifaa vinavyoendana. Madereva na programu muhimu hutolewa na vifaa, lakini mara nyingi hazipatikani. Katika hali hii, tunapendekeza upakue Bluetooth kwenye kompyuta au kompyuta yako ya mkononi kwa Windows 7, 8, 8. Utangamano wa matoleo ya Bluetooth 4.0+ na 5.0+ na Windows 10 unastahili kutajwa maalum. Viendeshi vya Bluetooth vinavyooana vinaweza pia kupatikana kutoka kwa watengenezaji vifaa, au imewekwa kwa kutumia Windows Update .

Kuna suluhu za programu na maunzi kwa kompyuta za mezani, kompyuta ndogo, netbooks, tablet, simu za rununu, wasaidizi wa kielektroniki, vichapishi, skana, kamera za digital, panya, kibodi, vitambuzi, vinara na vifaa vingine. Wakati Bluetooth haifanyi kazi kwenye kompyuta au kompyuta, tatizo mara nyingi sio vifaa. Unaweza, bila shaka, kununua kadi ya upanuzi wa Bluetooth au adapta mpya ya USB, lakini hakuna haja ya kukimbilia ndani yake. Suala linaweza kutatuliwa bila malipo ikiwa unapakua kwanza kiendesha Bluetooth kwenye tovuti hii ya Kirusi.

Kiolesura

Intuitively interface wazi inaruhusu kila mtumiaji asipate matatizo wakati wa kusanidi uhusiano wa wireless. Kwa wale wanaopatikana kwa ukaribu vifaa visivyo na waya programu itapendekeza moja kwa moja vitendo vinavyoungwa mkono na hii au vifaa. Kwa mfano, kwa simu, maingiliano, chelezo, kuhamisha faili, kuhariri kunawezekana daftari na shughuli zingine.

Jinsi ya kuunganisha Bluetooth

Ikiwa Bluetooth haikuunganishwa hapo awali kwenye gadget yoyote, basi ili kutumia uunganisho wa wireless, unahitaji kufunga adapta ya USB Bluetooth au kadi ya upanuzi. Baada ya ufungaji. programu mtumiaji ataweza kuunganisha simu yake ya mkononi, simu mahiri, kompyuta kibao na vifaa vingine kwenye kompyuta bila kebo ya USB au waya nyingine. Hii itakuruhusu kupakia kwa urahisi na haraka, kupakua na kusawazisha faili za video, sinema, muziki, michezo, picha, picha, nyimbo, sauti za simu, ikoni, waasiliani, hati na faili zingine.

Jinsi ya kuwasha Bluetooth

Usakinishaji wa programu unachukua muda fulani, lakini hupita bila matatizo ndani mode otomatiki, ikiwa katika hatua ya kwanza uliweza kupakua dereva wa Bluetooth kwa Windows 7, 8, 8.1, 10 na XP bila malipo bila usumbufu katika mawasiliano, kushindwa, au upakuaji unaosababisha uharibifu wa faili. Baada ya kuzindua kisakinishi, WIDCOMM inatambua aina ya adapta ya Bluetooth na faili zinazohitajika zinapakuliwa kwa ajili yake. Kwa hiyo, wakati wa mchakato wa ufungaji unahitaji uunganisho wa kazi kwenye mtandao, ikiwezekana kwa kasi ya juu. Baada ya usakinishaji, huenda ukahitaji kuanzisha upya kompyuta yako.

Baada ya kuzindua mpango wa WIDCOMM Bluetooth kwa Windows, hutafuta kiotomatiki vifaa vinavyopatikana. Mtumiaji anapaswa tu kuchagua kifaa kinachohitajika kutoka kwenye orodha na kuunganisha kwake. Uunganisho hutokea kwa kutumia nenosiri. Kifaa cha passiv kina nenosiri lililojengewa ndani, kwa kawaida tarakimu nne 1111 au 1234.

Jinsi ya kuunganisha sauti ya A2DP na vifaa vingine kupitia Bluetooth

Ikiwa unapakua Bluetooth kwenye kompyuta yako chini ya ukurasa huu ttp://bluetooth.ru.com/download na usakinishe programu kwa usahihi, hii itasuluhisha matatizo yote kwa kuanzisha mtandao wa Bluetooth, kuandaa. kubadilishana haraka faili na matangazo ya sauti ya A2DP katika ubora wa juu na bila kuvuruga. Mtandao unaweza kutumia vipokea sauti vinavyobanwa kichwani visivyotumia waya, maikrofoni, vifaa vya sauti, spika na spika kwa kutumia teknolojia ya A2DP. Hii hukuruhusu kucheza michezo, kutazama filamu, mfululizo wa TV, klipu za video na video kwenye YouTube na huduma sawa za video zenye sauti ya ubora wa juu bila kebo za sauti na nyaya.

Kila mtu anajua vizuri kwamba kwa msaada Bluetooth unaweza kuhamisha faili kutoka kwa kifaa hadi kifaa au kuunganisha vichwa vya sauti visivyo na waya. Lakini uwezo wake sio mdogo kwa hili. Kuwa na wewe chombo sahihi, unaweza kuunda miujiza halisi. Kwa hivyo kwa nini usijijaribu kama mchawi?

Moduli ya teknolojia iliyojengwa Bluetooth(au, rasmi zaidi, IEEE 802.15.3) kwa muda mrefu imekoma kuwa udadisi. Gharama ya moduli ni ndogo sana kwamba ni mtengenezaji mvivu tu asiyeijenga kwenye simu ya mkononi, kompyuta ya mkononi au PDA. Na hata wakati huo - kwa sababu za uuzaji. Kwa neno moja, Bluetooth Karibu kila mtu hutumia. Lakini ni wachache tu wanajua kwamba kwa kutumia teknolojia wanahatarisha kutoa data zao za siri. Lakini wacha tuanze na nzuri!

Mbinu ya 1: Tumia BT kufikia kompyuta yako ukiwa mbali

Mara moja, kwa wasilisho, nilimwalika rafiki mmoja wa miguu mirefu kubofya upau wa nafasi ili kupindua slaidi katika Power Point. Raha hii ilinigharimu chakula cha mchana cha bei ghali na masaa mawili ya mazungumzo matupu na msichana wa Barbie. Baada ya hayo, niliamua kwa dhati: wakati ujao nitatatua tatizo la ukosefu wa udhibiti wa kijijini kwa njia tofauti. Na alizunguka kwa kutumia simu yake ya mkononi! Ndiyo, ndiyo, kutoka kwa simu yako unaweza kupitia slaidi, kudhibiti muziki - na Mungu anajua nini kingine. Jambo kuu ni kwamba moduli za BT zimewekwa kwenye simu yako ya mkononi na kompyuta. Sio tu utaokoa pesa na bidii, lakini pia utaonekana bila msamaha wa mtindo. Mtu yeyote anayetumia matumizi anaweza kuonyesha hila kama hiyo
Kidhibiti cha Mbali cha Bluetooth
, ambayo ilisasishwa hivi majuzi hadi toleo la 3.0. Inakuruhusu kudhibiti kompyuta yako kutoka kwa skrini ya simu yoyote ya rununu. Kila kitu ni rahisi sana. Moja maalum imewekwa kwenye kompyuta sehemu ya seva, na kwenye simu - programu ya mteja iliyoandikwa katika Java (inahitaji MIDP 2.0). Baada ya kusanidi mzunguko rahisi, utaweza kudhibiti kipanya na kibodi cha kompyuta yako kwa mbali. Na muhimu zaidi, utapata ufikiaji wa desktop ya mbali. Eneo-kazi halisi la Mbali moja kwa moja kutoka skrini ya simu yako ya mkononi! Kweli, unaweza kutumia wakati mzuri zaidi na rafiki wa miguu mirefu. Bluetooth Udhibiti wa Kijijini muhimu hapa pia: kuweka
muziki wa kimapenzi :).

Hila ya 2: Udhibiti wa ufikiaji kwa kutumia BT

Ikiwa unafanya kazi katika chumba ambacho wenzako kadhaa wameketi nawe, labda ilibidi ufunge kompyuta yako unapoenda kwenye chumba kingine. Na nini? Kabla ya kuwa na wakati wa kuondoka, mtu atakuwa tayari anapekua diski yako kuu. Mpangilio sio wa kupendeza zaidi. Kwa ujumla, ni muhimu kufunga kompyuta yako, swali ni jinsi gani? Inaweza kutumika vipengele vya kawaida Windows na ingiza nenosiri refu mara kumi kwa siku. Au uifanye kwa uzuri kwa kutumia teknolojia Bluetooth. Kila kitu ni rahisi kama mbili na mbili. Unatembea mbali na kompyuta na inafungwa mara moja. Unarudi na kufuli imekwenda! Hali pekee: kompyuta na simu ya mkononi lazima iwe na moduli iliyowekwa
Bluetooth, na programu imewekwa kwenye mfumo LockItNow(unaweza kwa urahisi). Hata hivyo, unaweza kuwaambia marafiki na wenzake kuhusu uwezo wa telepathic, na kisha kuuza siri kwa pesa :). Kwa njia, ikiwa huna moduli ya BT karibu, unaweza kuibadilisha na simu inayounga mkono "jino la bluu" (unganisha kupitia bandari ya COM).

Mbinu ya 3: Nasa trafiki ya BT kutoka angani

Umahiri huanza na uelewa. Umewahi kutaka kuangalia ndani ya itifaki na kujua jinsi data inabadilishwa kupitia "jino la bluu"? Kusikiliza trafiki ya Bluetooth inaweza tu kutekelezwa "ndani", yaani, trafiki inayotoka na inayoingia ya nodi ambayo umetoa amri inaingiliwa. Katika suala hili, kinachojulikana kama Kiunganishi cha Mdhibiti wa Jeshi (HCI) sio muhimu sana, ambayo hukuruhusu kupata kisambazaji. Nodi ya HCI kawaida huunganishwa na nodi ya kiendeshi cha kifaa Bluetooth(mtiririko unaoingia) na kwa nodi ya L2CAP (mtiririko unaotoka). Jukwaa la Windows kwa chaguo-msingi haitoi chaguo hili. Hata hivyo watengenezaji wa chama cha tatu waliachiliwa
madereva maalum ambayo inaruhusu badilisha dongle ya kawaida kuwa kinusi. Kijadi dalili katika suala hili ni kazi Kichanganuzi cha Itifaki ya Bluetooth isiyo na waya ya FTS4BT, ikigharimu pesa nyingi. Bidhaa hiyo inavutia kwa sababu inasaidia mpya Bluetooth v2.0 + EDR, kwa misingi ambayo wanafanya kazi vifaa vya kisasa na, zaidi ya hayo, ina uwezo wa kuamua trafiki yote kutoka angani kwa kuruka, kupanga sauti vizuri, data ya itifaki ya programu na mengi zaidi. Ni wazi kuwa kwa kunusa (na kwa ujumla) muhimu zaidi ni Daraja la 1 la dongles za USB, safu ambayo hufikia mita mia moja.

Hila ya 4: Kufanya kazi na adapta ya BT moja kwa moja

Kwa muda mrefu Rafu za Bluetooth za Windows zilitoa uwezo mdogo kama huo kwamba watengenezaji programu waliepuka tu jukwaa hili. Hii inaelezea kuwa programu nyingi za kujifurahisha kwa "jino la bluu" hutengenezwa kwa jukwaa la Nix. Tutaangalia baadhi ya hila za hila haswa kwa jukwaa hili, yaani BureBSD(Napenda kukukumbusha kwamba kwenye diski ya toleo la awali tulichapisha toleo la hivi karibuni la 7.0 la OS hii). Teknolojia yenyewe Bluetooth rasmi ilianza kuungwa mkono juu yake tu kutoka kwa tawi la 5 kulingana na mfumo mdogo wa Netgraph. Ninafurahi kuwa adapta nyingi za USB zinaendana na kiendeshi cha ng_ubt (unahitaji kuisanikisha kabla ya kuunganisha kifaa). Je, tujaribu?

  1. Unganisha kifaa: kldload ng_ubt
  2. Nakili hati ya upakiaji wa rafu kwenye eneo linalofaa: cp /usr/share/examples/netgraph/bluetooth/rc.bluetooth /usr/local/etc/rc.bluetooth
  3. Nakili hati ya upakiaji wa rafu mahali pazuri na uendeshe: sh /usr/local/etc/rc.bluetoots anza ubt0

Sasa nataka kukutambulisha kwa matumizi ya hccontrol. Hii ni moja ya programu kuu za kufanya kazi na moduli ya BT. Ni ile inayofanya shughuli zote zinazohusiana na kiolesura cha HCI, na ina syntax ifuatayo: hccontrol -n<имя_hci_узла> <команда>. Wacha tuangalie utendakazi wa kifaa chetu kwa kuchanganua hewa kwa uwepo wa vifaa:

hccontrol –n ubt0hci Uchunguzi

Kama matokeo, matumizi yataonyesha habari kuhusu vifaa vilivyopatikana, pamoja na anwani zao za MAC. Ikumbukwe kwamba kila kifaa cha Bluetooth, iwe kipaza sauti au simu ya kawaida, inawakilisha seti fulani ya huduma. Orodha ya msingi ni pamoja na: CIP (Common ISDN Access), CTP (Cordless Telephony), DUN (piga-up networking), FAX (FAX), FTRN (Obex File Transwer), HSET (Headset), NAP (Network Access Point) . Ili kujua ni huduma gani kifaa fulani hutoa, ombi hutumiwa kwenye itifaki maalum ya SPD (Service Discovery Protocol). Seva ya SPD huendesha moja kwa moja kwenye mashine ya kupangisha na ni sehemu ya habari pekee (haiwezi kuathiriwa nayo
haiwezekani). Unaweza kuamua ni huduma gani zinazotolewa na vifaa vilivyopatikana kwa kutumia matumizi sahihi:

# spdcontrol -a kuvinjari

Hila ya 5: Kupata vifaa vilivyofichwa

Kwa hivyo, tulichanganua matangazo na hata tukajua ni huduma gani zinazopatikana kwenye vifaa vinavyotumika. Lakini hapa kuna kukamata! Baadhi ya vifaa havionyeshi uwepo wao kwa njia yoyote kwa sababu viko katika "Hali isiyoweza kutambulika" na havijibu maombi ya utangazaji. Kulingana na mipangilio ya simu yako, pengine unajua kuhusu chaguo hili la usalama. Hata hivyo Bado inawezekana kugundua vifaa vile!

Njia inayojulikana zaidi ya kuzigundua ni kuhesabu kwa nguvu kwa anwani za MAC, ambayo ni, kutuma maombi kwa mpangilio kwa anwani tofauti kutoka anuwai fulani. Ili kufanya hivyo unahitaji kutumia sana matumizi rahisi Redfang, ambayo hurudia zaidi ya baiti sita zilizopita za anwani ya kifaa na hivyo hutambua vifaa vilivyofichwa.

Chaguo jingine ni kutumia mbinu passiv: weka kifaa chako katika hali ya kusubiri, huku ukikabidhi jina la kuvutia kwenye mtandao:

hciconfig hci0 jina BT_YANDEX
hciconfig hci0 chini
hciconfig hci0 juu
hcidump -V | grep bdadr

Kama matokeo, miunganisho yote inayoingia itaonyeshwa, kati ya ambayo kunaweza kuwa na wandugu walio na vitambulisho vilivyofichwa.

Hila ya 6: Kukatiza mazungumzo ya vifaa vya sauti kutoka hewani

Moja ya vitisho kuu vya teknolojia ya redio ni kwamba data inaweza kuingiliwa. Jambo la kwanza linalokuja akilini kuhusu Bluetooth ni sikiliza mazungumzo ya watu kwa kutumia vifaa vya sauti. Na mara nyingi ni kweli! Katika tamasha la hacker Nini Hack huko Uholanzi, wataalam kutoka kwa kikundi cha Trifinite walionyesha jinsi, kwa kutumia kompyuta ndogo yenye Linux, programu maalum na antenna ya mwelekeo inaweza kuwa sikiliza kile dereva anasema kupitia kifaa cha sauti cha Bluetooth gari la kupita. Kikundi kilianzisha programu Mnong'ono wa Gari("Mnong'ono wa Gari"). Uwezo wa programu ni mdogo: unaweza kusikiliza tu wale ambao wamesahau kubadilisha nywila za ufikiaji wa Bluetooth za kiwanda kama vile.
"0000" au "1234". Lakini niamini, kuna masikini wengi kama hao! "Whisperer" ina uwezo wa kuunganisha na kufanikiwa "kuoanisha" vifaa, kupokea habari kutoka kwa kadi au vifaa vya sauti hadi kwa simu ya rununu. Ningependa kuteka mawazo yako: matumizi hukuruhusu sio tu kupokea habari inayopitishwa kati ya vifaa vya kichwa na simu ya rununu, lakini pia kuingiza habari yako mwenyewe hapo. Tuliamua kujaribu uwezo wa programu hii kwa kupakua Mnong'ono wa Gari kutoka kwa tovuti ya watengenezaji.

darasa la adapta ya hciconfig 0x500204
#0x500204 ni darasa la "simu".

Vinginevyo, vifaa vingine vya "smart" vinaweza kushuku kuwa kuna kitu kibaya. Wacha tuangalie syntax ya matumizi, ambayo inaonekana kama hii:

./carwhisperer "kile tunachoingiza kwenye mstari" "kile tunachonasa kutoka kwa laini" "anwani ya kifaa" [channel]

Tulichukua faili iliyopachikwa moja kwa moja kutoka kwa folda ya matumizi, na tukabainisha out.raw kama pato:

./carwhisperer 0 message.raw /tmp/out.raw
00:15:0E:91:19:73

Matokeo ni faili nje.ghafi. Huwezi kuisikiliza kwa fomu yake safi: unahitaji kuibadilisha kwa muundo wa sauti, ambayo itahitaji matumizi ya ziada. Vigeuzi vichache vya sauti vitafanya kazi, kwa mfano:

mbichi –r 8000 –c 1 –s –w nje.mbichi –t wav –r
44100 -c 2 nje.wav

Mbali na kusikiliza, unaweza kuingia, kutazama kitabu cha simu na kutumia fursa nyinginezo" mikono bure»na Bluetooth. Kanuni ni hii: kwanza, vifaa vinavyotumika vinatafutwa na kuangaliwa kwa huduma ya HS (Head Set). Ifuatayo, anwani ya MAC ya kifaa inachunguzwa na uunganisho unajaribiwa kwa kutumia ufunguo wa kawaida. Ikiwa uunganisho umeanzishwa, basi unaweza kufanya chochote unachotaka na kifaa (ndani ya seti ya kutosha ya amri za AT).

Katika mazoezi inaonekana kama hii. Kwanza, vichwa vyote vinavyotumika hutafutwa kwa kutumia amri ya "sdptool search HS", ambayo hutoa jibu kama hili:

Inauliza...
Inatafuta HS mnamo 00:0A:3A:54:71:95 ...
Jina la Huduma: Kifaa cha sauti
RecHandle ya Huduma: 0x10009
Orodha ya Kitambulisho cha Daraja la Huduma:
"Kifaa cha kichwa" (0x1108)
"Sauti ya Kawaida" (0x1203)
Orodha ya Maelezo ya Itifaki:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Kituo: 7
Orodha ya Msingi wa Lugha:
msimbo_ISO639: 0x656e
usimbaji: 0x6a
base_offset: 0x100
Orodha ya Maelezo ya Wasifu:
"Kifaa cha kichwa" (0x1108)
Toleo: 0x0100

Kisha, jaribio linafanywa ili kufungua muunganisho wa RFCOMM kwenye chaneli ya sauti ya SCO kwa kutumia amri "rfcomm connect 2 00:0A:3A:54:71:95 1" na kutuma amri muhimu za AT. Hapa kuna muhtasari mfupi wa takwimu kuhusu data ya uidhinishaji wa baadhi ya mifano ya vichwa vya sauti visivyotumia waya:

Nokia (00:02:EE...) - pin="5475"
Audi UHV (00:0E:9F...) - pin="1234"
O"Neill (00:80:37...) - pin="8761"
Cellink (00:0A:94...) - pin="1234"
Eazix (00:0C:84...) - pin="1234"

Kwa njia, kanuni hiyo hiyo inaweza kutumika kwa muunganisho usioidhinishwa na kwa vifaa vingine vyote. Kwa kutumia amri za AT na itifaki ya RFCOMM, unaweza, kwa mfano, kusoma ujumbe wa SMS au hata kuutuma kutoka kwa simu ya mtu mwingine hadi nambari iliyolipwa, kuweka mmiliki wa kifaa kwenye pesa. Uwe macho!

Hila 7: vifaa vya DDoS BT

Mbinu ni ya jadi. DDoS inaweza kweli kutekelezwa wakati kifaa mwenyeji ("master") kinafanya kazi ambayo ni kubwa mara nyingi kuliko ya mteja. Hali hii inaitwa shambulio la Kunyimwa Huduma. Inaweza kukata simu au kusababisha kutokwa haraka betri. Kuna njia kadhaa za kufanya shambulio. Wacha tuanze na zana za kawaida. Jambo la wazi zaidi ni ping kifaa na pakiti kubwa. Hii inaweza kufanywa kwa kubainisha bendera ya "-s" kwa matumizi ya l2ping:

# l2ping -s 10000 -b "anwani ya MAC"

Mpango yenyewe, kama ulivyoelewa tayari, ni jamaa wa ping katika mazingira ya bluetooth na hutumikia kuangalia mawasiliano na uwepo wa uhusiano. Njia nyingine, tofauti kabisa na ile ya kwanza, ni kutumia mbinu ya "kufurisha" - aina ya mbinu ya bahati nasibu, kwa sababu haijulikani mapema nini kitatokea. Huu ni mtindo mpya wa kutambua udhaifu katika bidhaa bila kuchanganua misimbo ya chanzo. Mbinu hiyo inategemea tu mawasiliano ya mwingiliano na kitu katika lugha ambayo inaelewa, lakini kwa hoja zenye machafuko kabisa na maadili tofauti. Kazi ya hacker itakuwa kuhakikisha kuwa jina linaloonekana la simu linajumuisha kutosha idadi kubwa vipengele. Inapogunduliwa na "bwana" katika 70%
kesi wakati kufurika au kunyimwa huduma kunatokea:

hciconfig hci0 jina `perl -e "chapisha "ash" x 3137"`
# Amri ya Linux
hccontrol -n adapta change_local_name "jina jipya")
# mfano kwa FreeBSD

Simu nyingi bado haziwezi kuchakata faili za bomu. Hapa kuna utekelezaji rahisi wa mbinu kama hiyo.

  1. Kwanza, "bomu" huandaliwa. Mfano maarufu:
    echo `perl -e 'chapisha "skvz" x 3137'` > faili
  2. Kisha utumie matumizi yaliyorekebishwa kuingiliana na OBEX - USSP PUSH (xmailserver.org/ussp-push.html)
    ./obextool push file 00:0A:3A:54:71:95 `perl -e ‘chapisha "skvz" x 3137'` 3

Mfumo wa Android humpa msanidi programu tajiriba uwezo wa mawasiliano. Ili kufanya kazi na Bluetooth, Android inajumuisha API thabiti ambayo hurahisisha kuchanganua mazingira kwa vifaa vilivyo tayari kuunganishwa, kuhamisha data kati ya vifaa na mengine mengi.

Kufanya kazi na Bluetooth kunajumuisha hatua nne: kuweka mipangilio ya adapta ya Bluetooth, kutafuta vifaa vinavyopatikana kwa uunganisho, kuanzisha muunganisho, na kuhamisha data.

Muhtasari wa API ya Bluetooth ya Android

API ya Bluetooth iko kwenye kifurushi android.bluetooth. Inajumuisha madarasa kadhaa:

  • Adapta ya Bluetooth- ni wajibu wa kufanya kazi na imewekwa Simu ya Bluetooth moduli. Mfano wa darasa hili upo katika programu yoyote inayotumia bluetooth. Darasa hili linajumuisha mbinu zinazokuruhusu kutafuta vifaa vinavyopatikana, kuomba orodha ya vifaa vilivyounganishwa, kuunda mfano wa darasa la BluetoothDevice kulingana na anwani ya MAC inayojulikana, na kuunda BluetoothServerSocket ili kusikiliza maombi ya muunganisho kutoka kwa vifaa vingine.
  • Kifaa cha Bluetooth- darasa linalohusishwa na kifaa cha mbali cha Bluetooth. Mfano wa darasa hili hutumika kuunganisha kupitia BluetoothSocket au kuomba maelezo kuhusu kifaa cha mbali(jina, anwani, darasa, jimbo).
  • BluetoothSocket- interface ya tundu la Bluetooth, sawa Soketi za TCP. Hiki ndicho sehemu ya muunganisho inayoruhusu data kubadilishwa na kifaa cha mbali kupitia InputStream na OutputStream.
  • BluetoothServerSocket- inawakilisha tundu la seva wazi, tayari kushughulikia ombi linaloingia. Ili kuunganisha hizo mbili Vifaa vya Android, mmoja wao anapaswa kufungua tundu kwa kutumia darasa hili. Wakati kifaa cha mbali kinatuma ombi la muunganisho, BluetoothServerSocket itarudisha kipengee cha BluetoothSocket.
  • BluetoothClass- inaelezea vigezo kuu vya moduli ya Bluetooth. Kipengee cha darasa hili ni cha kusoma tu na kinaweza kuwa muhimu katika kubainisha aina ya kifaa.
  • BluetoothProfile- kiolesura kinachowakilisha wasifu wa Bluetooth (maelezo interface isiyo na waya kuunganisha vifaa kupitia Bluetooth). Mfano wa wasifu ni wasifu wa Hands-Free, ambao huamua jinsi ya kufanya kazi na vichwa vya sauti visivyo na waya.
  • BluetoothHeadset- hutoa msaada kwa vichwa vya sauti vya bluetooth. Inajumuisha vifaa vya sauti vya Bluetooth na wasifu wa Bila Mikono (v1.5).
  • BluetoothA2dp- Inafafanua Wasifu wa Hali ya Juu wa Usambazaji wa Sauti, ambayo hufafanua utumaji wa mtiririko wa data ya sauti ya ubora wa juu kupitia bluetooth.
  • BluetoothHealth- inafafanua proksi ya Wasifu wa Kifaa cha Afya.
  • BluetoothHealthCallback ni darasa la dhahania ambalo linaweza kutumika kutekeleza urejeshaji simu kutoka kwa BluetoothHealth. Ili kusajili mabadiliko katika hali ya kifaa cha Bluetooth, unahitaji kuunda chako kulingana na darasa hili na ubatilishe mbinu za kupiga simu ndani yake.
  • BluetoothHealthAppConfiguration- usanidi ambao hutumiwa kuunganishwa na vifaa mbalimbali vya matibabu vya bluetooth.
  • BluetoothProfile.Msikilizaji wa Huduma- kiolesura ambacho hutuma arifa ya BluetoothProfile IPC kwa wateja wanapounganisha na kukata muunganisho kutoka kwa huduma.

Katika makala hii, hatutaingia katika kiini cha kufanya kazi na vifaa vya matibabu vya Bluetooth na tutazingatia madarasa manne ya kwanza.

Kuweka mipangilio ya adapta ya Bluetooth kutoka Android

Ukiamua kutumia uwezo wa moduli ya Bluetooth katika programu yako, lazima kwanza uunganishe kifurushi kinacholingana cha API.

Leta android. bluetooth.*;

Kwa kuongeza, lazima upe kibali cha programu kutumia moduli ya Bluetooth. Ili kufanya hivyo, unahitaji kuongeza mstari kwenye onyesho la programu

Ikiwa utatumia vipengele muhimu vya usalama, kwa mfano, kubadilisha jina la kifaa, basi unahitaji kutoa ruhusa zenye nguvu zaidi za BLUETOOTH_ADMIN:

Unapotumia ruhusa ya BLUETOOTH_ADMIN, BLUETOOTH lazima pia ibainishwe.

Kabla ya kuunganisha kwa mtu na kuhamisha data, unahitaji kuhakikisha kuwa simu yako ina moduli ya bluetooth. Hatua ya kwanza wakati wa kufanya kazi na API ya bluetooth ni kuunda mfano wa darasa la BluetoothAdapter

BluetoothAdapter bluetooth= BluetoothAdapta. getDefaultAdapter() ;

Ikiwa simu yako haitumii bluetooth, "null" itarejeshwa. Katika mazoezi, unapaswa kuangalia hali hii daima ili kuepuka makosa.

BluetoothAdapter bluetooth= BluetoothAdapta. getDefaultAdapter() ; ikiwa (bluetooth!= null ) ( // Bluetooth ni sawa. }

Hata kama kifaa chako kina moduli ya Bluetooth, huenda kisipatikane kwa sababu mtumiaji alikizima tu. Mbinu ya isEnabled() inatumika kuangalia upatikanaji wa Bluetooth. Ikiwa moduli imezimwa, unaweza kumwuliza mtumiaji kuiwasha.

Ikiwa (bluetooth.isEnabled()) (
// Bluetooth imewashwa. Tunafanya kazi.
}
mwingine
{
// Bluetooth imezimwa. Hebu tumwulize mtumiaji kuiwasha.
Nia enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(wezeshaBtIntent, REQUEST_ENABLE_BT);
}

Ikiwa mtumiaji amekubali kuwezesha adapta, kigezo cha enableBtIntent kitawekwa kuwa RESULT_OK. Vinginevyo - RESULT_GAMEHWA.

Baada ya ukaguzi wote kukamilika, unaweza kuanza kufanya kazi. Hebu, kwa mfano, tuonyeshe jina na anwani ya adapta yetu kwa kupiga njia za getName() na getAddress().

Hali ya kamba; if (bluetooth. isEnabled() ) ( String mydeviceaddress= bluetooth. getAddress() ; String mydevicename= bluetooth. getName() ; status= mydevicename+ " : " + mydeviceaddress; ) vinginevyo ( status= "Bluetooth imezimwa" ; ) Toast. makeText(hii, hadhi, Toast. LENGTH_LONG) . show();

Ikiwa programu ina ruhusa ya BLUETOOTH_ADMIN, unaweza kubadilisha jina la kifaa cha Bluetooth kwa kutumia mbinu

Bluetooth. setName("AndroidCoder") ;

Ili kuonyesha hali ya adapta, tumia mbinu ya BluetoothAdapter.getState(). Njia hii inaweza kurudisha moja ya maadili yafuatayo:

STATE_TURNING_ON
STATE_ON
STATE_TURNING_OFF
STATE_OFF

Ili kuokoa nishati ya betri, Bluetooth mara nyingi huzimwa kwa chaguomsingi. Nambari ifuatayo inaunda ujumbe kumjulisha mtumiaji kuhusu hali ya adapta:

Hali ya mfuatano=bluetooth. getState(); status= mydevicename+ ”: ”+ mydeviceaddress+ " : " + state;

Kuandaa utafutaji wa vifaa vya bluetooth vinavyopatikana

Kwa kutumia darasa la BluetoothAdapter, unaweza kupata kifaa cha mbali cha bluetooth kwa kutafuta au kuuliza orodha ya vifaa vilivyooanishwa.

Inapochanganua, hutafuta moduli za bluetooth zinazopatikana karibu nawe. Ikiwa kifaa kilicho na Bluetooth iliyowashwa kiko ndani ya masafa, kitajibu ombi kwa taarifa fulani kujihusu: jina, darasa, anwani yake ya kipekee ya MAC. Kulingana na habari hii, uunganisho na uhamisho wa data unaweza kupangwa.

Mara baada ya kuanzisha uunganisho na kifaa cha mbali, mtumiaji ataonyeshwa moja kwa moja ombi la uunganisho. Ikiwa jibu ni chanya, taarifa iliyopokelewa (jina, darasa na anwani ya MAC) huhifadhiwa na kisha inaweza kutumika kupitia API ya bluetooth. Kwa njia hii, wakati ujao unapowasiliana na kifaa hiki cha mbali, hutalazimika tena kuchanganua, kwani anwani ya MAC inayohitajika tayari itaingizwa kwenye hifadhidata ya simu yako na unaweza kuichagua tu kutoka kwenye orodha ya vifaa vilivyooanishwa.

Inahitajika kutofautisha kati ya dhana za vifaa vilivyounganishwa na vilivyounganishwa. Vifaa vilivyooanishwa hujua tu kuwepo kwa kila kimoja, vina kiungo muhimu wanavyoweza kutumia kwa uthibitishaji, na vinaweza kuunda muunganisho uliosimbwa kwa njia fiche. Vifaa vilivyounganishwa vinashiriki chaneli sawa ya redio na vinaweza kusambaza data kwa kila kimoja. Sasa utekelezaji wa bluetooth API inahitaji vifaa kuoanishwa kabla ya kuunganishwa. (Kuoanisha hufanywa kiotomatiki unapoanzisha muunganisho uliosimbwa kwa njia fiche kupitia API ya Bluetooth)

Ombi la kuunganisha kwenye kifaa kilichooanishwa

Kabla ya kuanza kutafuta vifaa karibu, ni jambo la busara kumwonyesha mtumiaji orodha ya tayari inayojulikana kwa mfumo vifaa. Inawezekana kabisa kwamba simu unayohitaji itakuwa kwenye orodha hii. Njia ya getBondedDevices() hurejesha Seti ya BluetoothDevice ambayo tayari imeunganishwa. Unaweza kuonyesha orodha hii kwa mtumiaji, kwa mfano kutumia ArrayAdapter:

Weka< BluetoothDevice>pairedDevices= mBluetoothAdapter. getBondedDevices() ; // Ikiwa orodha ya vifaa vilivyooanishwa haina tupu ikiwa (pairedDevices. size() > 0 ) ( // pitia orodha hii kwa (kifaa cha BluetoothDevice: pairedDevices) ( // Ongeza majina na anwani kwa mArrayAdapter ili kuonyesha// kupitia ListView mArrayAdapter. add(device. getName() + " \n"+ kifaa. getAddress()); ))

Ili kuanzisha muunganisho, unahitaji kujua anwani ya MAC ya kifaa. Katika mfano hapo juu, anwani hizi zimehifadhiwa kwenye Arrayadapter na zinaonyeshwa kwa mtumiaji. Ukipenda, unaweza kupata kwa urahisi anwani yoyote kutoka kwenye orodha hii.

Tafuta vifaa

Ili kuanza kuchanganua masafa ya redio kwa vifaa vinavyopatikana, piga tu mbinu ya startDiscovery(). Skanning hutokea katika thread tofauti ya asynchronous. Njia hiyo inarudi kuwa kweli ikiwa uzinduzi wa skanisho ulifanikiwa. Kawaida mchakato wa skanning huchukua sekunde 10-15. Ili kupokea maelezo kuhusu vifaa vilivyopatikana, ni lazima programu yako isajili Mpokeaji Broadcast kwa nia ya ACTION_FOUND. Nia hii inaitwa kwa kila kifaa kinachopatikana. Kusudi lina sehemu za ziada EXTRA_DEVICE na EXTRA_CLASS, ambazo zina vipengee vya BluetoothDevice na BluetoothClass, mtawalia.

// Unda Kipokea Utangazaji cha ACTION_FOUND private final BroadcastReceiver mReceiver= new BroadcastReceiver() ( public void onReceive(Context context, Intent Intent) ( String action= intent. getAction() ; // Wakati kifaa kipya kinapatikana ikiwa (BluetoothDevice. ACTION_FOUND. ni sawa(hatua) ) ( // Pata kitu cha BluetoothDevice kutoka kwa dhamira BluetoothDevice device=int. getParcelableExtra(BluetoothDevice. EXTRA_DEVICE) ; //Ongeza jina na anwani kwenye adapta ya safu ili kuonyesha kwenye ListView mArrayAdapta. add(device. getName() + " \n"+ kifaa. getAddress()); )); // Sajili Mpokeaji wa Utangazaji IntentFilter filter= new IntentFilter(BluetoothDevice. ACTION_FOUND) ; registerReceiver(mReceiver, chujio); // Usisahau kubatilisha usajili katika onDestroy

Tafuta Bluetooth vifaa vinahitaji rasilimali nyingi. Mara umepata kifaa kinachofaa, usisahau kuacha mchakato wa skanning. Hili linaweza kufanywa kwa kutumia njia ya cancelDiscovery(). Pia, ikiwa simu yako tayari imeunganishwa na kifaa, skanning inaweza kupunguza kwa kiasi kikubwa kipimo cha data cha kituo, hivyo ni bora kukataa kutafuta vifaa vipya wakati muunganisho umeanzishwa.

Inawasha Bluetooth kutoka kwa programu

Kisasa Simu mahiri za Android hawezi kujisifu kwa muda mrefu fanya kazi, kwa hivyo watu wote wa kawaida huzima moduli ya Bluetooth. Ikiwa ungependa kuwapa watumiaji wako uwezo wa kufanya simu ionekane kwa simu zingine, pigia ACTION_REQUEST_DISCOVERABLE dhamira ukitumia mbinu ya startActivityForResult(Intent, int). Matokeo yake, mtumiaji ataonyeshwa dirisha la mfumo na ombi la kubadili simu mwonekano wa bluetooth. Kwa chaguo-msingi, hali hii imewashwa kwa sekunde 120. Wakati huu unaweza kubadilishwa kwa kupitisha dhamira parameter ya ziada EXTRA_DISCOVERABLE_DURATION. Muda wa juu unaopatikana ni sekunde 3600. Thamani ya 0 huweka moduli ya Bluetooth ya simu yako katika hali ya mwonekano wa kila mara. Kwa mfano, hebu tuunde dhamira na ombi la kubadili hali ya mwonekano kwa sekunde 300

Intent discoverableIntent= new Intent(BluetoothAdapter. ACTION_REQUEST_DISCOVERABLE) ; discoverableIntent. putExtra(BluetoothAdapter. EXTRA_DISCOVERABLE_DURATION, 300); startActivity(discoverableIntent);

Kama matokeo ya kutekeleza msimbo huu, mtumiaji ataonyeshwa mazungumzo yenye ombi. Mtumiaji akikubali, simu itawekwa katika hali ya mwonekano na njia ya kupiga simu ya onActivityResult() itaitwa. Matokeo ya njia itakuwa idadi ya sekunde ambazo kifaa kitaonekana. Mtumiaji akikataa toleo au hitilafu ikitokea, nia italeta msimbo RESULT_CANCELED. Kuweka kifaa katika hali ya mwonekano huwasha kiotomatiki adapta ya Bluetooth.

Iwapo ungependa kupokea arifa wakati hali ya mwonekano wa kifaa chako inabadilika, sajili Mpokeaji Broadcast kwa nia ya ACTION_SCAN_MODE_CHANGED. Sehemu za ziada EXTRA_SCAN_MODE na EXTRA_PREVIOUS_SCAN_MODE hutoa maelezo kuhusu hali mpya na ya zamani, mtawalia. Wanaweza kuchukua thamani za SCAN_MODE_CONNECTABLE_DISCOVERABLE, SCAN_MODE_CONNECTABLE au SCAN_MODE_NONE. Thamani ya kwanza inaonyesha kuwa kifaa kinaweza kutafutwa. Pili, kifaa hakitafutikani, lakini kina uwezo wa kupokea viunganisho. Tatu, haiwezi kutafutwa na haiwezi kukubali miunganisho.

Huna haja ya kuweka simu yako katika hali ya mwonekano ikiwa utaanzisha muunganisho. Kifaa unachotaka kuunganisha lazima kionekane.

Vifaa vya kuunganisha

Ili kuunganisha vifaa viwili, lazima uandike msimbo wa upande wa seva na upande wa mteja. Moja ya vifaa vinapaswa kufunguliwa tundu la seva, na ya pili ni kuanzisha muunganisho kwa kutumia anwani ya MAC ya seva. Seva na mteja huchukuliwa kuwa wameunganishwa wakati wote wana BluetoothSocket inayotumika kwenye chaneli moja ya RFCOMM. Baada ya hapo, wanaweza kufundisha na kutuma mitiririko ya data. Seva na mteja hupata BluetoothSocket inayohitajika kwa njia tofauti. Seva huipokea wakati muunganisho unaoingia unakubaliwa. Mteja - inapofungua RFCOMM kwa seva.

Seva

Wakati wa kuunganisha vifaa, mmoja wao lazima afanye kama seva, ambayo ni kushikilia BluetoothServerSocket iliyo wazi. Madhumuni ya seva ni kusubiri ombi la muunganisho unaoingia, na inapothibitishwa, unda BluetoothSocket. Baada ya hayo, BluetoothServerSocket inaweza kufungwa. Wacha tuchunguze utaratibu wa uunganisho hatua kwa hatua kutoka kwa maoni ya seva:

  1. Pata BluetoothServerSocket kwa kupiga njia ya listenUsingRfcommWithServiceRecord(String, UUID). Kigezo cha kwanza cha njia ni jina la utambulisho la huduma yako. Mfumo utauongeza kiotomatiki kwenye hifadhidata ya Itifaki ya Ugunduzi wa Huduma (SDP). Kwa kawaida, parameta hii imeainishwa tu kama jina la programu. Kigezo cha pili pia kinatambua huduma. Kigezo hiki kinatumiwa na mteja wakati wa kuthibitisha uunganisho.
  2. Tunaanza kusikiliza maombi ya muunganisho kupitia njia ya kukubali (). Hii ni njia ya kuzuia ambayo inarejesha matokeo ama wakati muunganisho umethibitishwa au wakati ubaguzi unatokea. Muunganisho unachukuliwa kuwa umethibitishwa wakati kifaa cha mbali kinatuma ombi la muunganisho kwa UUID iliyobainishwa wakati wa kusajili soketi ya seva. Ikifaulu, accept() hurejesha BluetoothSocket iliyosanidiwa kwa muunganisho.
  3. Ikiwa unataka kukubali muunganisho wa ziada, piga njia ya close(). Hii itatoa tundu na rasilimali zake zote, lakini haitafunga BluetoothSocket iliyounganishwa. Tofauti na TCP/IP, RFCOMM hukuruhusu kufanya kazi na mteja mmoja tu kwenye chaneli, kwa hivyo katika hali nyingi inafanya akili kupiga njia ya karibu () kwenye kipande baada ya kuweka tundu kukubali.

Kwa kuwa njia ya kukubali () inazuia, haipaswi kuitwa kutoka kwa nyuzi shughuli kuu, kwani hii itasababisha kiolesura kufungia. Kwa kawaida, zote hufanya kazi na BluetoothServerSocket na BluetoothSocket hufanywa kwa uzi tofauti. Ili kuacha kutekeleza njia ya kukubali (), piga simu njia ya close() kwenye BluetoothServerSocket (au BluetoothSocket) kutoka kwa mazungumzo mengine yoyote kwenye programu yako.

Ifuatayo ni mfano wa uzi unaotumia utaratibu ulioelezwa hapo juu:

darasa la kibinafsi KubaliThreadextends Thread( private final BluetoothServerSocket mmServerSocket; Public AcceptThread() ( // unganisha kwa mmServerSocket, BluetoothServerSocket tmp= null ; jaribu ( // MY_UUID ni UUID ya programu yetu, thamani sawa // kutumika katika maombi ya mteja tmp= mBluetoothAdapta. listenUsingRfcommWithServiceRecord(NAME, MY_UUID); ) catch(IOException e) ( ) mmServerSocket= tmp; ) utupu wa umma run() ( BluetoothSocket socket= null ; // subiri hadi kosa litokee au la // tundu litarejeshwa wakati (kweli) (  try( socket= mmServerSocket. accept() ; ) catch(IOException e) ( break ; ) // ikiwa unganisho ulithibitishwa if (socket!= null ) ( manageConnectedSocket(socket) ; mmServerSocket. close() ; break ; ) ) utupu wa umma cancel() ( try( mmServerSocket. close() ; ) catch(IOException e) ( ) ) )

Mfano huu unafikiri kwamba uunganisho mmoja tu unaweza kuanzishwa, hivyo baada ya uunganisho kuthibitishwa na BluetoothSocket inapokelewa, programu hutuma kwa thread tofauti, kufunga BluetoothServerSocket, na kuondoka kwenye kitanzi.

Kumbuka kwamba wakati accept() inarudisha BluetoothSocket, tundu tayari limeunganishwa, kwa hivyo hakuna haja ya kupiga njia ya connect().

manageConnectedSocket() ni njia ambayo unahitaji kuunda mtiririko ili kuhamisha data. Utekelezaji wake unaowezekana utajadiliwa hapa chini.

Lazima ufunge BluetoothServerSocket mara baada ya kumaliza kusikiliza matangazo kwa uwepo muunganisho unaoingia. Katika mfano hapo juu, njia ya karibu () inaitwa mara moja baada ya kupokea kitu cha BluetoothSocket. Unaweza pia kuhitaji mbinu ya umma ili kusimamisha BluetoothSocket ya faragha.

Mteja

Ili kuanzisha muunganisho na kifaa cha mbali (kifaa kinachoshikilia tundu la seva wazi), unahitaji kupata kipengee cha BluetoothDevice kilicho na maelezo kukihusu. Kifaa hiki kinatumika kupokea BluetoothSocket na kuanzisha muunganisho.

Hebu tueleze utaratibu wa kuunganisha:

  1. Hebu tupate BluetoothSocket kwa kupiga njia ya BluetoothDevice.createRfcommSocketToServiceRecord(UUID). Thamani ya kigezo cha UUID lazima ilingane na thamani iliyobainishwa wakati wa kupiga simu listenUsingRfcommWithServiceRecord kwa seva.
  2. Tunaanzisha muunganisho kwa kupiga njia ya kuunganisha (). Baada ya kupiga simu kwa njia hii, mfumo utafanya ukaguzi wa SDP kwenye kifaa cha mbali ili kufanana na UUID. Ikifaulu, kulingana na uthibitisho wa ombi kutoka kwa seva, kituo cha RFCOMM kitafunguliwa. Hii ni simu inayozuia. Ikiwa kwa sababu fulani muunganisho utashindwa au kuisha kwa muda hutokea (kama sekunde 12), ubaguzi utatolewa.

Kama ilivyo kwa kukubali, njia ya connect() inapaswa kutekelezwa kwa uzi tofauti, vinginevyo kiolesura kinaweza kuning'inia.

Maoni. Kabla ya kupiga simu connect(), hakikisha kuwa hakuna utambazaji unaoendeshwa kwa sasa ili kupata vifaa vinavyopatikana. Ikiwa shughuli hizi zinafanywa wakati huo huo, muunganisho utaanzishwa polepole zaidi, na una hatari ya kutofikia wakati wa kuisha.

Hapa kuna mfano wa programu ya mteja ambayo huanzisha muunganisho

darasa la kibinafsi UnganishaThreadextends Thread( ya mwisho ya kibinafsi BluetoothSocket mmSocket; BluetoothDevice ya mwisho ya kibinafsi mmDevice; public ConnectThread(BluetoothDevice device) ( // tumia kibadilishaji cha msaidizi, ambacho kitakuwa baadaye// unganisha kwa mmSocket, BluetoothSocket tmp= null ; mmDevice= kifaa; // pata BluetoothSocket ili kuunganisha kwa BluetoothDevice jaribu ( // MY_UUID ni UUID ambayo pia inatumika kwenye seva tmp=kifaa. createRfcommSocketToServiceRecord(MY_UUID) ; ) catch(IOException e) ( ) mmSocket= tmp; ) utupu wa umma kukimbia() ( // Ghairi skanning kwa sababu inapunguza kasi ya muunganisho mBluetoothAdapta. cancelDiscovery() ; jaribu ( // Unganisha kwenye kifaa kupitia tundu. // Njia hiyo inazuia utekelezaji wa programu hadi // kuanzisha muunganisho au kusababisha hitilafu mmSoketi. kuunganisha (); ) catch(IOException connectException) ( // Haiwezi kuunganishwa. Funga tundu na uondoke. try( mmSocket. close() ; ) catch(IOException closeException) ( ) return ; ) // dhibiti unganisho (katika uzi tofauti) manageConnectedSocket(mmSocket) ; ) /** ghairi kusubiri tundu */ utupu wa umma cancel() ( jaribu( mmSocket. close() ; ) catch(IOException e) ( ) ) )

Ili kuacha kuchanganua mawimbi ya hewa, njia ya cancelDiscovery() inaitwa. Kabla ya kupiga simu kwa njia hii, unaweza kuangalia ikiwa utambazaji unaendelea kwa kutumia isDiscovering().

Pigia simu njia ya close() kila wakati unapomaliza kutumia BluetoothSocket. Hii itasaidia kuokoa rasilimali za simu.

Uhamisho wa data

Baada ya muunganisho uliofaulu, kila kifaa kilichounganishwa kina kitu cha BluetoothSocket ambacho ni rahisi kutuma/kupokea data:

  1. Kwa kutumia njia za getInputStream() na getOutputStream(), pata vipengee vya InputStream na OutputStream vinavyodhibiti upitishaji juu ya tundu.
  2. Soma na uandike data kwa mtiririko kwa kutumia njia za kusoma (byte) na kuandika (byte).

Lazima utumie thread tofauti kusoma na kuandika data. Hii ni muhimu kwa sababu njia za kusoma (byte) na kuandika (byte) zinazuia na kuziita kwenye uzi kuu kunaweza kupooza programu yako. Kitanzi kikuu katika mazungumzo haya tofauti lazima kisome data kutoka kwa InputStream. Kuandika kwa OutputStream, inaeleweka kuunda njia tofauti ya umma.

darasa la kibinafsi ImeunganishwaThreaded inapanua Thread( ya mwisho ya kibinafsi ya BluetoothSocket mmSocket; InputStream ya kibinafsi ya mwisho mmInStream; mwisho wa kibinafsi OutputStream mmOutStream; public ConnectedThread(BluetoothSocket socket) ( mmSocket= socket; InputStream tmpIn= null ; OutputStream tmpOut= null ; // Pata mitiririko ya data inayoingia na kutoka try( tmpIn= socket. getInputStream() ; tmpOut= socket. getOutputStream() ; ) catch(IOException e) ( ) mmInStream= tmpIn; mmOutStream= tmpOut; ) public void run() ( byte buffer= new byte[ 1024] ; // safu ya bafa int ka; // byte zilizorejeshwa kutoka kwa read() // Sikiliza InputStream hadi ubaguzi ufanyike wakati (kweli) (jaribu ( // soma kutoka InputStream baiti= mmInStream. soma (bafa); // tuma baiti zilizosomwa kwa shughuli kuu mHandler. findMessage(MESSAGE_READ, baiti, - 1 , bafa) . sendToTarget(); ) catch(IOException e) ( break; ) ) /* Piga simu kwa njia hii kutoka kwa shughuli kuu ili kutuma data kwa kifaa cha mbali */ public void write(byte byte) ( try( mmOutStream. write(bytes) ; ) catch(IOException e) ( ) ) /* Piga njia hii kutoka kwa shughuli kuu ili kufunga unganisho */ utupu wa umma cancel() ( jaribu( mmSocket. close() ; ) catch(IOException e) ( ) )

Mjenzi huunda vitu vya kufanya kazi na mitiririko ya data, baada ya hapo mtiririko huhuisha data inayoingia. Baada ya kizuizi kifuatacho cha data kusomwa kutoka kwa mkondo unaoingia, inatumwa kwa shughuli kuu kwa kupiga njia ya Handler ya darasa la mzazi. Kutuma data kutoka kwa shughuli kuu, piga simu njia ya write(). Ndani ya njia hii ya umma, simu ya kuandika (byte) hufanyika. Njia ya karibu () pia inaweza kuitwa kutoka kwa shughuli kuu. Anavunja uhusiano.

Tafsiri: Alexander Ledkov

Programu ya kuunganisha kompyuta mitandao isiyo na waya Bluetooth.

Makini! Ili kuepuka maoni hasi, tafadhali soma onyo hili!

1. Mpango uliowasilishwa hapa Haifanyi kazi kwenye kompyuta zote.
2. Ili Bluetooth ifanye kazi kwenye kompyuta yako, unahitaji kufanya hivyo Hakika unahitaji adapta ya Bluetooth(kitu ambacho kinaonekana kama gari la flash, kawaida hutengenezwa kwa plastiki yenye rangi ya bluu, wakati mwingine tayari imejengwa kwenye kompyuta ya mkononi na inahitaji kuwashwa - angalia maagizo ya kompyuta ndogo). Bila adapta, programu ya Widcomm haitaweza kufanya kazi.
3. Ikiwa tayari huna adapta ya Bluetooth na bado unapaswa kununua, nunua mfano unaokuja diski ya dereva pamoja(itagharimu rubles 100 zaidi).
4. Ikiwa ulinunua adapta hapo juu na madereva, basi uwezekano mkubwa kutakuwa na programu ya kufanya kazi na Bluetooth, na hauitaji hata programu ya Widcomm.
5. Ikiwa haujaangalia adapta, usiape kwenye maoni, sawa?

Uchovu wa waya? Je! unataka kufanya kazi kwenye kompyuta ukiwa umelala kwenye sofa? Hakuna nafasi ya printer katika chumba, na iko nyuma ya ukuta? Au labda unahitaji tu kuhamisha nyimbo kadhaa mpya za muziki kwenye simu yako?

Bluetooth inaweza kushughulikia haya yote kwa urahisi! Ikiwa utawapa PC yako na moduli ya mawasiliano ya wireless, unaweza kuunganisha kwa vifaa vyovyote vinavyofanya kazi kwa masafa sawa (kutoka 2.4 hadi 2.4835 GHz) na ziko katika eneo la mita 1 - 100 kutoka kwa kompyuta.

Leo tayari kuna nne (toleo la nne kwa sasa ni chini ya majaribio) matoleo kuu ya Bluetooth. Wanajulikana kutoka kwa kila mmoja tu kwa kiwango cha matumizi ya nishati, idadi ya njia za mzunguko na kiwango cha uhamisho wa data.

Kiwango cha kawaida kwa sasa ni Bluetooth 2.0. Moduli za aina hii hutumiwa katika simu nyingi za rununu, vifaa vya kuweka vitufe visivyotumia waya, vichwa vya sauti, n.k., na kuruhusu ubadilishanaji wa taarifa na wastani. kasi ya kweli hadi megabit 1 kwa sekunde.

Lakini kwa kuoanisha vifaa vya nje Kwa kompyuta, adapta tu haitoshi - unahitaji pia programu inayofaa ili kusimamia viunganisho. Kwa kawaida, programu kama hizo huja zikiwa na adapta ya Bluetooth iliyonunuliwa, lakini mara nyingi husambazwa chini ya leseni ya muda au toleo la onyesho. Hata hivyo, inageuka kuwa kuna ufumbuzi wa bure katika eneo hili pia.

Mmoja wao ni tata kutoka Widcomm. Inajumuisha seti ya madereva ambayo hutoa mwingiliano na aina mbalimbali vifaa, pamoja na shell ya programu kwa urahisi udhibiti wa mtumiaji, iliyojengwa kwa msingi Windows Explorer. Hebu tulinganishe ofa ya Widcomm na nyingine maarufu suluhisho la kulipwa Bluesoleil:

Ulinganisho wa programu ya Widcomm na analogi iliyolipwa ya Bluesoleil

Licha ya kiolesura kilichoundwa kwa uzuri kidogo, Widcomm karibu hakuna duni analog iliyolipwa, na mara nyingi hata ina utangamano bora na adapta wazalishaji tofauti! Kwa nini hili linatokea? Ukweli ni kwamba Widcomm huchagua zaidi kifurushi bora madereva mahsusi kwa kifaa chako hata kabla ya usakinishaji!

Ufungaji wa Widcom

Ni bora kutumia kisakinishi cha mtandaoni, ambacho kinapatikana kwa kupakuliwa kwa umma kwenye tovuti rasmi. Pakua na uzindue bootloader ya Bluetooth baada ya kuunganisha adapta yako kwenye kompyuta yako.

Dirisha la kwanza ambalo utaona ni makubaliano ya leseni, ambayo unahitaji "kusoma" na "kuthibitisha" (bila shaka, sisi mara moja bonyeza kitufe cha "Kubali";)). Baada ya "kukubali" masharti ya leseni, dirisha lifuatalo litaonekana:

Hapa unaweza kuona michakato yote iliyofanywa na kisakinishi. Kwanza, hutambua vifaa vya Bluetooth vilivyounganishwa nayo na kuzithibitisha, yaani, takribani kusema, inaangalia utangamano na madereva ya Widcomm. Ikiwa uthibitishaji ulifanikiwa, mchakato wa kupakua programu utaanza, na baada ya kukamilika, mchakato wa ufungaji utaanza hatimaye.

Kwa kasi ya uunganisho wa 1 Mbit / s, utaratibu mzima ulinichukua muda wa dakika 20 (na hii ni zaidi, kwa kuzingatia kwamba kifaa changu kilithibitishwa mara ya pili tu :)). Baada ya usakinishaji kukamilika, utahitaji kuanzisha upya kompyuta yako kwa kubofya kitufe cha "Reboot" kwenye mazungumzo ya mwisho.

Baada ya kuanzisha upya PC, utaona njia ya mkato ya "mazingira ya Bluetooth" kwenye eneo-kazi, na kwenye tray ya mfumo utapata ikoni yenye nembo ya Bluetooth:

Kuanzisha Widcomm

Kwa kubofya kulia juu yake, tutafungua menyu ya mipangilio ya programu ya Widcomm. Kuanza, napendekeza uamue juu ya mipangilio fulani. Ili kufanya hivyo, chagua kipengee cha "Jopo la Mipangilio ya Bluetooth":

Katika dirisha kuu " Mipangilio ya jumla"Unaweza kuweka jina ambalo kifaa chetu kitaonekana kikioanishwa nacho vifaa vya nje. Lakini zaidi ya yote tunavutiwa na sehemu " Huduma za Mitaa" na "Programu za Mteja". Hapa tunaweza kusanidi sera za usalama kwa kila aina ya muunganisho, na pia kuunda milango mipya ya kuunganisha vifaa kama vile vichapishaji, n.k.

Ili kubadilisha vigezo vya uunganisho, chagua kipengee kilichohitajika na ubofye kitufe cha "Mali" kwenye kona ya chini kushoto.

Sasa tunaweza kuweka aina ya uunganisho, autostart ya huduma iliyochaguliwa, na pia kutaja vigezo vingine vya ziada.

Kwa hiyo, tumemaliza mipangilio, sasa hebu tuendelee kuunganisha moja kwa moja vifaa vya nje kwenye kompyuta. Kwa mfano, fikiria kuunganisha PC na simu ya mkononi.

Kuunganisha vifaa kwenye kompyuta yako kupitia Bluetooth

Widcomm hutoa njia mbili za kuunganisha vifaa: haraka na mara kwa mara. Ikiwa unahitaji kuunganisha kifaa fulani mara moja tu (kuhamisha faili, kadi ya biashara, sauti ...), njia rahisi ni kuchagua "Uunganisho wa haraka" kwenye menyu. hatua inayohitajika na bofya kitufe cha "Tafuta vifaa" (baada ya kuamsha Bluetooth juu yake).

Baada ya kugunduliwa, utaulizwa kuingiza msimbo wa PIN ili kuidhinisha muunganisho. Tunakuja na mchanganyiko wa kiholela wa nambari (unaweza hata tu "1" :)) na uiingize kwenye kifaa na kwenye dirisha linalofungua (ikiwa kifaa unachounganisha hakina kibodi cha nambari (kwa mfano, a. printer), basi unapaswa kuangalia msimbo wa kuoanisha wa Bluetooth katika maagizo) .

Katika muunganisho uliofanikiwa Utakuwa na ufikiaji wa kitendakazi unachotaka.

Ikiwa unapanga kuunganisha kifaa kwenye PC yako zaidi ya mara moja, basi njia rahisi ni kuunda uunganisho wa kawaida kwa hiyo. Ili kufanya hivyo, chagua kipengee cha "Unganisha kifaa cha Bluetooth" kwenye menyu - mchawi maalum utazindua. Katika hatua ya kwanza, kama katika kesi ya uunganisho wa haraka, itachanganua vifaa vinavyopatikana na atatupa orodha yao:

Chagua unayohitaji na ubofye mara mbili juu yake ili kwenda kwenye dirisha ili kuchagua huduma zinazopatikana:

Katika mfano wetu, tunaweza kusanidi kuoanisha na simu kwa namna ya bandari ya serial ya COM, lango la sauti, pamoja na seva ya FTP na OPP. Kwa kuhamisha faili, chaguo bora ni seva ya FTP. Weka alama na ubonyeze "Ifuatayo".

Katika dirisha linalofungua, unaweza kutaja jina la uunganisho, na kisha ukamilishe uundaji wa njia ya mkato ya uunganisho kwa kubofya kitufe cha "Mwisho".

Hebu tuone kile tulichonacho. Ili kufanya hivyo, fungua "mazingira ya Bluetooth", ambayo ni interface ya mtumiaji kwa kuingiliana na vifaa vilivyounganishwa, na uone njia ya mkato ambayo tumeunda hapo tu.

Ili kuunganisha, sasa tunahitaji tu kubofya mara mbili kwenye ikoni iliyoundwa. Ikiwa chaguo limeamilishwa kwenye kifaa kilichooanishwa muunganisho salama, itabidi uweke nambari ya PIN inayolingana (tazama hapo juu).

Na hatimaye kila kitu ni tayari! Tunapokea orodha ya faili kutoka kwa simu. Sasa unaweza kuzinakili kwenye kompyuta yako, kuzibadilisha jina, kuzitazama, n.k.

hitimisho

Kutokana na ukweli kwamba Bluetooth ina idadi ya njia za mzunguko, tunaweza kuunganisha wakati huo huo vifaa kadhaa kwenye kompyuta moja.

Kwa mfano, unaweza kuchapisha picha wakati huo huo kwenye printa, kusikiliza muziki ukiwa umelala kwenye sofa na kibodi isiyo na waya na kuvinjari habari za mwisho kwenye mtandao. Na tunaweza hata kusanidi mtandao wa ndani usio na waya na ufikiaji wa Mtandao Wote wa Ulimwenguni!

Maagizo ya video ya kufanya kazi na programu ya Bluetooth kwenye kompyuta ya Widcomm:

jiandikishe kwa masomo mapya ya video!

Hapa unaweza kupakua viendeshaji vya bluetooth kwa Tarakilishi, kompyuta ndogo na netbook ili kupanga muunganisho usiotumia waya ili kuunganisha Kompyuta na vifaa vingine, kwa kutumia moduli ya maunzi iliyojengewa ndani ya Bluetooth au adapta ya Bluetooth kama vile kiendeshi cha flash kilichounganishwa kupitia lango la USB linalopatikana. Ukadiriaji chanya wa watumiaji katika hakiki na maoni katika katika mitandao ya kijamii, kwenye vikao maalum na rasilimali nyingine kwenye mtandao, pamoja na mapendekezo ya jinsi ya kupakua kwa usahihi dereva wa Bluetooth bila malipo kwa Windows 10, 8.. Kiungo cha kudumu: tovuti/ru/drivers/bt

Wazo la jumla la teknolojia ya Bluetooth

Ikiwa unahitaji kuunganisha PC na kifaa chochote kwa kutumia itifaki ya Bluetooth, ni mantiki kupakua viendeshaji vya Broadcom Bluetooth bila malipo kwa Windows XP, Vista, 7, 8, 8.1, 10 na kuziweka kwenye kompyuta yako, kompyuta ndogo au netbook. Teknolojia hii inakuwezesha kuunganisha kompyuta binafsi mbalimbali kamili ya vifaa vya pembeni na vifaa na sambamba itifaki ya wireless kuhamisha habari na kutumia zote mbili kwa wakati mmoja na kwa kudumu. Vifaa vinavyotumika sana vilivyounganishwa ni kompyuta kibao, simu mahiri, simu za rununu, picha za digital na kamera za video, vipokea sauti vinavyobanwa kichwani visivyotumia waya, spika, vipokea sauti vya Bluetooth kwa Kompyuta, vipokea sauti vya Bluetooth vya simu, vipaza sauti kwenye magari, panya, vijiti vya kufurahisha, kibodi, faksi, vichapishi, vichanganuzi, vipokezi vya GPS, OBD2 ELM327 adapta ya bluetooth kwa uchunguzi wa gari na zaidi. Vifaa vingi vya Bluetooth vinavyofanya kazi kwenye mtandao vinaitwa piconet. Michanganyiko ya kumweka-kwa-uhakika na kumweka-kwa-alama nyingi hutumika kama kawaida. Kabla ya kuoanisha, lazima uweke msimbo wa PIN kwa wahusika wote wanaofanya kazi. Maunzi tulivu yana msimbo wa PIN uliojengewa ndani.

Miongoni mwa faida za teknolojia hii, inafaa kuonyesha faida zifuatazo:

Utafutaji wa haraka na uunganisho wa vifaa,
- matumizi ya chini ya nishati,
- upinzani dhidi ya kuingiliwa kwa redio;
- uhamisho wa data sambamba,
- matangazo ya sauti ya hali ya juu,
- Usimbaji fiche wa 128-bit AES kwa ulinzi wa data.

Bluetooth inatafsiriwa kwa Kirusi kama "jino la bluu". Teknolojia hiyo imetengenezwa tangu 1994 na Ericsson Corporation, na tangu 1998 IBM, Intel, Motorola, Nokia na Toshiba wamejiunga nayo, na kuunda Bluetooth SIG. Leo, pamoja na Bluetooth, mbadala zisizo na waya za nyaya za RS-232 kama mawasiliano ya infrared IrDA na mitandao ya redio ya ndani ya Wi-Fi imeenea.

Adapta ya Bluetooth na mtandao

Adapta ya BT kawaida ni kifaa cha USB kinachoruhusu Kompyuta moja kuwasiliana na Kompyuta zingine na vifaa vingine vya aina sawa. mtandao wa ndani na uwezo wa kuhamisha data kati yao. Data kama hiyo inaweza kuwa, kwa mfano, rekodi za video na picha kutoka kwa simu ya rununu, nyimbo, hati, e-vitabu na nyinginezo. Pia, uunganisho wa BT unafaa kwa kuunganisha kwenye mtandao, kwa mfano, kupitia 3G au GPRS, kwa kutumia uwezo wa modem ya simu ya mkononi. Mitandao ya Bluetooth hufanya kazi katika masafa ya masafa ya redio kutoka 2.4 hadi 2.485 GHz, ambayo haina leseni katika nchi nyingi, ambapo Wi-Fi, simu za redio hufanya kazi na kutoa mionzi inayoandamana kutoka kwa microwave, vifaa vya kisayansi na matibabu. Katika mtandao wa hivi karibuni wa eneo la kibinafsi la Wireless, vipimo vya WPAN, anuwai ya mitandao ya Bluetooth imeongezwa hadi mita 100, na data hupitishwa kwa kasi ya 3 Mbit / s. Mwenyeji XR mwenye nguvu zaidi kutoka AIRcable ana umbali wa kilomita 30. Upeo wa maombi hauna vizuizi: kutoka kwa simu mahiri za kawaida, vifaa vya sauti, vivinjari vya GPS hadi kichanganuzi cha uchunguzi wa Bluetooth cha OBD2 ELM327 na vihisi vinavyotumika katika sayansi, michezo na dawa.

Jinsi ya kuwasha bluetooth, kupakua na kusakinisha programu

Kabla ya kuanza ufungaji, lazima uhakikishe kuwa vifaa vinafanya kazi: unganisha adapta ya USB inayofanya kazi au uamsha moduli ya Bluetooth kwenye BIOS ya mbali. Mara tu mtumiaji ameweza kupakua viendeshi vya Bluetooth bila malipo kutoka kwa ukurasa huu wa tovuti kwa Kirusi na ameanza usakinishaji, hakuna haja ya kusanidi chochote. Ufungaji huchukua muda, wakati mwingine unapaswa kusubiri kulingana na vifaa. Katika kuanzisha Bluetooth hutambua moja kwa moja vifaa na kuchambua uwezekano wa kuandaa uunganisho wa wireless, huamua vigezo vya kifaa cha pembeni. Vifaa vya Bluetooth kwenye PC haifanyi kazi kikamilifu kila wakati, kwa hivyo tunapendekeza utafute kompyuta katika mazingira ya BT kwa kutumia kompyuta kibao au simu mahiri inayoaminika.

Jinsi ya kuwasha bluetooth ikiwa kuna matatizo

Ikiwa kuna tatizo na kufunga madereva, basi kuna chaguzi mbili za kutatua tatizo. Ya kwanza ni kuangalia utendaji wa kifaa cha BT yenyewe, kwa mfano, kiashiria haichoki, kompyuta haioni na haionyeshi kwenye orodha ya vifaa. Ya pili ni kuhakikisha kwamba bandari ya USB inafanya kazi vizuri kwa kuunganisha kifaa kingine chochote, kwa mfano, gari la flash. Ikiwa bandari ya USB inafanya kazi vizuri, basi inafaa kupima kompyuta hii adapta ya BT inayojulikana.

Kawaida imewekwa mara moja Viendeshaji vya Bluetooth kwa kazi ya uhamisho wa data bila matatizo hata wakati wa kubadilisha adapta. Inatosha kupakua programu ya bluetooth ya Broadcom mara moja kwenye kompyuta yako ya uendeshaji. Mfumo wa Microsoft Windows 10, 8.1, 8, 7, Vista, XP na usakinishe kwa usahihi. Kusakinisha upya au kusasisha viendeshi vya Bluetooth vya wote kwa kawaida hakuhitajiki, kwa kuwa vipimo vya teknolojia huchukua upatanifu ulioimarishwa wa maunzi.