ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ИспользованиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ j2me для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ видСонаблюдСний

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ (ΠΌΠΎΠ΄Π΅Π»ΠΈ срСднСй Ρ†Π΅Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ Π²Ρ‹ΡˆΠ΅) прСкрасно ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, выходящими Π·Π° Ρ€Π°ΠΌΠΊΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ…: Ρ€Π°Π±ΠΎΡ‚Π° с ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ, просмотр тСкстовых Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Π·Π°Π΄Π°Ρ‡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π° ΡΡ‡Π΅Ρ‚ J2ME-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ практичСски всСми ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌΠΈ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ИспользованиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ j2me для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ видСонаблюдСний (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования РСспублики Π‘Π΅Π»Π°Ρ€ΡƒΡΡŒ

" Π“ΠΎΠΌΠ΅Π»ΡŒΡΠΊΠΈΠΉ государствСнный унивСрситСт ΠΈΠΌΠ΅Π½ΠΈ Ѐранциска Π‘ΠΊΠΎΡ€ΠΈΠ½Ρ‹"

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚

ΠšΠ°Ρ„Π΅Π΄Ρ€Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

Дипломная Ρ€Π°Π±ΠΎΡ‚Π°

" ИспользованиС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ j2me для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ видСонаблюдСния"

Π“ΠΎΠΌΠ΅Π»ΡŒ 2009

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова: видСонаблюдСниС, ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ двиТСния, ΠΌΠΈΠ΄Π»Π΅Ρ‚, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2ME, Bluetooth, SMS-сообщСниС, MMS-сообщСниС, файловая систСма мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, ΠΊΠ°ΠΌΠ΅Ρ€Π°, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LWUIT, FileConnection API JSR-75, MobileMedia API JSR-135, Bluetooth API JSR-82, Wireless Messaging API JSR-205.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ исслСдования: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ исслСдования: ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2ME.

ЦСль Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹: ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ использования рСсурсов мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ J2ME.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹: ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ возмоТности Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ рСсурсами Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°: файловая систСма, ΠΊΠ°ΠΌΠ΅Ρ€Π°, Bluetooth, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° SMS ΠΈ MMS-сообщСний. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ J2ME, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ видСонаблюдСниС.

1. ΠžΠ±Π·ΠΎΡ€ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

2. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2ME

2.1 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия

2.2 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LWUIT

2.3 Bluetooth

3. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния для мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ J2ME

3.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

3.2 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ интСрфСйса

3.3 ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Bluetooth

3.4 Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°

3.5 ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° SMS ΠΈ MMS-сообщСний

3.6 Алгоритм обнаруТСния двиТСния Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок источников

Π’ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡŽΠ΄Π΅Π½ΠΈΠ΅ — процСсс, осущСствляСмый с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ тСхничСских Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ контроля Π·Π° ΠΎΡ…раняСмыми ΠΈΠ»ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹ΠΌΠΈ тСрриториями, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Главная Π·Π°Π΄Π°Ρ‡Π° видСонаблюдСния — обСспСчСниС бСзопасности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡƒΡ‚Π΅ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ наблюдСния Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΠ΅ общСдоступныС сСти.

Π’ΠΈΠ΄Π΅ΠΎΠ½Π°Π±Π»ΡŽΠ΄Π΅Π½ΠΈΠ΅ стало Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ явлСниСм соврСмСнной повсСднСвной ΠΆΠΈΠ·Π½ΠΈ. Π Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, автостоянки ΠΈ Π³Π°Ρ€Π°ΠΆΠ½Ρ‹Π΅ комплСксы, офисы, транспорт, общСствСнныС мСста, ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ банковского сСктора ΡΠ½Π°Π±ΠΆΠ°ΡŽΡ‚ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅Ρ€Π°ΠΌΠΈ. Π’ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ обСспСчиваСт ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ прСступлСний ΠΈ ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ быстроС раскрытиС, выполняСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ дСйствий пСрсонала.

Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ оборудования систСмы видСонаблюдСния дСлятся Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ (Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅). Π’ Π»ΡŽΠ±ΠΎΠΌ случаС ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ состоит ΠΈΠ· Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅Ρ€, устройств ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ оборудования ΠΈ ΡƒΡΡ‚ройств Π²Ρ‹Π²ΠΎΠ΄Π° изобраТСния (ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€). Π’Π°ΠΊΠΆΠ΅ Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ часто Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ устройства Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΆΡƒΡ…ΠΎΠ², устройств управлСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½Π° Π΄Π°Π»ΡŒΠ½ΠΈΠ΅ расстояния ΠΈ Ρ‚. ΠΏ.

Цифровая систСма видСонаблюдСния обСспСчиваСт:

— Π²Ρ‹ΡΠΎΠΊΠΎΠ΅ качСство воспроизводимой видСозаписи;

— Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ доступа ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠ°Ρ€Ρ…ΠΈΠ²Ρƒ;

— Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ любого ΠΊΠ°Π΄Ρ€Π°;

— Π±Ρ‹ΡΡ‚Ρ€Ρ‹ΠΉ поиск ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ видСозаписи ΠΏΠΎ ΠΊΠ°ΠΌΠ΅Ρ€Π΅, Π΄Π°Ρ‚Π΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;

— Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ систСмами бСзопасности;

— Π»Π΅Π³ΠΊΠ°Ρ ΠΈ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³Π°Ρ трансляция Π²ΠΈΠ΄Π΅ΠΎΠ°Ρ€Ρ…ΠΈΠ²ΠΎΠ² ΠΏΠΎ ΠΊΠ°Π½Π°Π»Π°ΠΌ связи;

— Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ‚Ρ€Π΅Π²ΠΎΠΆΠ½Ρ‹Ρ… сообщСний ΠΏΠΎ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡ‡Ρ‚Π΅ ΠΈ SMS;

— Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ экспорта Π²ΠΈΠ΄Π΅ΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΡ‹Π΅ внСшниС носитСли.

Аналоговая систСма видСонаблюдСния проста Π² Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π½Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ для обслуТивания пСрсонал мСньшСй ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ΠœΠΈΠ½ΡƒΡΡ‹ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… систСм видСонаблюдСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

— ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ — обратная сторона высокой надСТности;

— ΠΏΠΎΡΡ‚оянноС обслуТиваниС — смСна ΠΈ Π°Ρ€Ρ…ивация кассСт, пСриодичСская чистка ΠΈ Π·Π°ΠΌΠ΅Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠ³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΌΠ°Π³Π½ΠΈΡ‚ΠΎΡ„ΠΎΠ½Π°.

АналоговыС систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ видСонаблюдСниС Π² Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΌ числС ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅Ρ€ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠΌΠ°Π³Π½ΠΈΡ‚ΠΎΡ„ΠΎΠ½.

Учитывая ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС сотовой связи, ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… соврСмСнных систСмах видСонаблюдСния ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ SMS с ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ.

НапримСр, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° GOALmobile — это Π²ΠΈΠ΄Π΅ΠΎΡ‚Π΅Π»Π΅Ρ„ΠΎΠ½, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΡ€ΠΈ этом Π½ΡƒΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сотовый Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GPRS. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ транслируСмых ΠΊΠ°ΠΌΠ΅Ρ€ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ производится Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ Ρ‚Ρ€ΡƒΠ±ΠΊΠ΅. Π’ ΡΠΎΡΡ‚Π°Π²Π΅ систСмы бСзопасности данная тСхнология позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π²ΠΎΠΆΠ½Ρ‹Π΅ сообщСния с Π²Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ видСоизобраТСния происходящСго события ΠΈΠ»ΠΈ Π΅Π³ΠΎ записи, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊ ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΎΡ…Ρ€Π°Π½Ρ‹. НапримСр, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π·Π²ΠΎΠ½ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π΄Π²Π΅Ρ€ΡŒΡŽ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρ‹ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ поступит сигнал, ΠΈ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° Тивая трансляция ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹-Π³Π»Π°Π·ΠΊΠ°. ΠŸΡ€ΠΈ этом Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ 1 для открытия Π·Π°ΠΌΠΊΠ°, ΠΊΠ½ΠΎΠΏΠΊΡƒ 2 для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сирСны, ΠΊΠ½ΠΎΠΏΠΊΡƒ 3 для Π²Ρ‹Π΄Π°Ρ‡ΠΈ голосового сообщСния ΠΈ Ρ‚. Π΄.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ прилоТСния для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° для обнаруТСния двиТСния. НапримСр, Π¦ΡŽΡ€ΠΈΡ…ΡΠΊΠΈΠΉ Π˜Π½ΡΡ‚ΠΈΡ‚ΡƒΡ‚ Π²ΡΠ΅ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ создал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ², находящихся Π² ΠΎΠ±Ρ‰Π΅ΠΉ сСти, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ систСмы видСонаблюдСния.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Facet позволяСт ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Bluetooth, Π° Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Ρ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ события, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ² ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹. Бмысл дСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‚Π°ΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ Ссли Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Nokia N6630, Π½Π° ΠΏΠΎΡ‚ΠΎΠ»ΠΊΠ΅ ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Facet, Ρ‚ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΏΠΎΠ»Π΅ ΠΎΠ±Π·ΠΎΡ€Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ°ΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΏΠ°Π΄Π°Ρ‚ΡŒ двиТущийся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ сразу ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΡ‹Π»Π°Ρ‚ΡŒ сигнал находящСмуся рядом Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΡΡ‹Π»Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· GPRS. Подобная систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΡ…Ρ€Π°Π½Π½ΠΎΠΉ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΡƒΡŽ систСму наблюдСния Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚авляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

Однако Π΄Π°Π½Π½Ρ‹Π΅ прилоТСния Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ‹ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для смартфонов ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся созданиС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ прилоТСния Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ J2ME, которая поддСрТиваСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ².

1. ΠžΠ±Π·ΠΎΡ€ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

Π’ Π½Π°ΡΡ‚оящСС врСмя сотовая связь — самая ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΈΠ· Π²ΡΠ΅Ρ… Π²ΠΈΠ΄ΠΎΠ² мобильной связи. НаиболСС распространСнными Π²ΠΈΠ΄Π°ΠΌΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½, смартфон, ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ ΠšΠŸΠš.

Π‘ΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Ρ‹ ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ достаточно Ρ€Π°Π·Π²ΠΈΡ‚ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния сторонними Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ. Установка Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ смартфонов ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌΠΈ.

Π’ Π½Π°ΡΡ‚оящСС врСмя Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ разграничСния ΠΌΠ΅ΠΆΠ΄Ρƒ смартфонами ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΎΠΈΡ… классов устройств ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°. Часто примСняСтся Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ «ΠΈΡΡ‚оричСский ΠΏΠΎΠ΄Ρ…ΠΎΠ΄», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ: Ссли устройство Π²Π΅Π΄Π΅Ρ‚ свою Ρ€ΠΎΠ΄ΠΎΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΎΡ‚ ΠšΠŸΠš — это ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π° Π΅ΡΠ»ΠΈ ΠΎΡ‚ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² — это смартфон. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΠΎΠ΄ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ΡΡ устройства с ΡΠ΅Π½ΡΠΎΡ€Π½Ρ‹ΠΌ экраном (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ), Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows Mobile. Устройства, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ для Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρƒ (Π°Π½Π°Π»ΠΎΠ³ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ), Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ смартфонами. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ устройств ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Symbian Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ относят ΠΊ ΡΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Π°ΠΌ (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Nokia сСрии 9XXX, Nokia E90 ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ…). Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ устройства зависит ΠΎΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Сля (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ устройства с ΡΠ΅Π½ΡΠΎΡ€Π½Ρ‹ΠΌ экранам относят ΠΊ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ, Π° ΠΊ ΡΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Π°ΠΌ относят устройства Π±Π΅Π· Π½Π΅Π³ΠΎ), хотя Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ смартфонов Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π΄Π²ΡƒΡ… ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах: Symbian ΠΈ Windows Mobile Smartphone Edition. Π’ ΠΌΠΈΡ€Π΅ Symbian Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстными ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Nokia Series 60, 80, 90 ΠΈ Sony Ericsson UIQ. Π’ Π»Π°Π³Π΅Ρ€Π΅ Windows Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° HTC.

Π’Π°ΠΊΠΆΠ΅ Ρ‡Π°ΡΡ‚ΡŒ спСциалистов раздСляСт ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΡΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Ρ‹ ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ ΠΈΠ»ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΡŽ ΠΏΠΎΠ»Π½ΠΎΡ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΠΉ (QWERTY) ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ»ΠΈ физичСской).

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ (ΠΌΠΎΠ΄Π΅Π»ΠΈ срСднСй Ρ†Π΅Π½ΠΎΠ²ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ Π²Ρ‹ΡˆΠ΅) прСкрасно ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, выходящими Π·Π° Ρ€Π°ΠΌΠΊΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ…: Ρ€Π°Π±ΠΎΡ‚Π° с ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡ‡Ρ‚ΠΎΠΉ, просмотр тСкстовых Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ ΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†, Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠΎΠΌ Π·Π°Π΄Π°Ρ‡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π° ΡΡ‡Π΅Ρ‚ J2ME-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ практичСски всСми ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌΠΈ, смартфонами ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π­ΠΊΡ€Π°Π½ Ρ†Π΅Π»ΠΎΠ³ΠΎ ряда ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ² Π½Π΅ ΡƒΡΡ‚ΡƒΠΏΠ°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ смартфонов (Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ ΠΎΡΠ½Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΈ ΡΠ΅Π½ΡΠΎΡ€Π½Ρ‹ΠΌΠΈ экранами), ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ оснащСны Ρ€Π°Π·ΡŠΠ΅ΠΌΠΎΠΌ для ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти. Π‘ΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Ρ‹ Π² Π³Π»Π°Π·Π°Ρ… Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ выглядят Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π° ΡΡ‡Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² (частично обусловлСнных ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ смартфонов ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² производитСлями), Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ: Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π±ΠΎΠ»Π΅Π΅ качСствСнная ΠΊΠ°ΠΌΠ΅Ρ€Π°, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности воспроизвСдСния Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Π΅ ΠΌΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ способности), Wi-Fi, GPS ΠΈ Π΄Ρ€.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы смартфона ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ скомпилированными Π² Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… микропроцСссорных ΠΊΠΎΠΌΠ°Π½Π΄. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎ Π²ΡΠ΅Ρ… смартфонах установлСны Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ процСссоры, Ρ‡Π΅ΠΌ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…, возмоТности программиста ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ практичСски Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ прилоТСния Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ ΠΈ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ рСсурсы процСссора, Ρ‡Π΅ΠΌ «ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅» J2ME-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ смартфоны ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ большСй ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Symbian прилоТСния Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ: Visual Studio, IDE Metrowerks CodeWarrior Development Studio, Borland C++ BuilderX Mobile Edition, Carbide. C++.

Π’ Π½Π°ΡΡ‚оящСС врСмя ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ большоС распространСниС ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΡΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Π² ΡΠ΅Π±Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ КПК с Ρ„ункциями мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°. КПК ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ рядом нСдостатков ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, основной ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… — мСньшСС врСмя Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. К Π½Π°Ρ‡Π°Π»Ρƒ 2008 Π³ΠΎΠ΄Π° КПК Π±Ρ‹Π»ΠΈ практичСски вытСснСны смартфонами ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ поставок КПК постоянно ΡΠ½ΠΈΠΆΠ°ΡŽΡ‚ΡΡ.

Android — Π½Π΅Π΄Π°Π²Π½ΠΎ появившаяся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, основанная Π½Π° Linux, разрабатываСмая OHA. Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Android SDK ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° для Eclipse ADT для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования Java, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ устройством Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Google Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния Π½Π° C ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования. Под ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Android Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ HTC G1, Samsung i7500 ΠΈ Π΄Ρ€.

Π’Ρ‹Π±ΠΎΡ€ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ J2ME для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ обусловлСн Π΅Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ доступа ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ рСсурсам Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°.

2. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2ME

2.1 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ понятия

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2ME Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Sun Microsystems с Ρ†Π΅Π»ΡŒΡŽ прСдоставлСния возмоТности создания Java-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для устройств с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами памяти ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сотовыС Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹, ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅Ρ€Ρ‹, смарт-ΠΊΠ°Ρ€Ρ‚Ρ‹, ΠΎΡ€Π³Π°Π½Π°ΠΉΠ·Π΅Ρ€Ρ‹ ΠΈ ΠΌΠΈΠ½ΠΈΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹.

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2ME являСтся бСзопасной для использования, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ доступС Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, использовании Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ SMS, доступС ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ± ΡΡ‚ΠΎΠΌ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ ΠΈ Π΄Π»Ρ продолТСния использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ спСцификаций СдинствСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ нСсанкционированного доступа являСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° троян, которая ΠΏΠΎΠ΄ Π²ΠΈΠ΄ΠΎΠΌ нСобходимости выполнСния ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π°Π²Π° Π² ΡΠ²ΠΎΠΈΡ… цСлях.

АрхитСктура ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ J2ME прСдставлСна Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2.1.

Рисунок 2.1 — АрхитСктура ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ J2ME

Устройства, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ J2ME-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΌΠΈΠ΄Π»Π΅Ρ‚), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ опрСдСляСт самыС Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ класс System, Runtime, Thread ΠΈ Ρ‚. Π΄., Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ являСтся Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Над ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ Π½Π°Π΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ свои ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ. ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ опрСдСляСт трСбования ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ части устройства, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ API.

Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ 2 ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ: CLDC ΠΈ CDC. CDC ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для устройств, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… постоянноС сСтСвоС соСдинСниС, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅ΠΉΠ΄ΠΆΠ΅Ρ€Ρ‹, Ρ‚Π΅Π»Π΅Π²ΠΈΠ·ΠΈΠΎΠ½Π½Ρ‹Π΅ приставки, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ систСмы Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹. Π’Π°ΠΊΠΈΠ΅ устройства Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ систСмными рСсурсами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 2 ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°ΠΌΠΈ памяти.

Над ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ CDC ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ надстроСны ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Foundation Profile, Personal Basis Profile ΠΈ Personal Profile.

Foundation Profile Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с GUI. ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для встраиваСмых устройств.

Personal Basis Profile содСрТит основныС элСмСнты GUI. ЯвляСтся надстройкой Π½Π°Π΄ Foundation Profile.

Personal Profile содСрТит графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, основанный Π½Π° AWT. ЯвляСтся надстройкой Π½Π°Π΄ Personal Basis Profile.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ CLDC ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для устройств с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ объСмом памяти ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ (Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹, ΠΎΡ€Π³Π°Π½Π°ΠΉΠ·Π΅Ρ€Ρ‹, КПК). Для этих ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

— ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ 16 ΠΈΠ»ΠΈ 32-разрядный;

— ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΎΡ‚ 160 Π΄ΠΎ 512 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚;

— Π±Π΅ΡΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠ΅ сСтСвоС соСдинСниС;

— ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΡ‚ Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€ΠΎΠ².

Данная конфигурация содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ java.lang.*, java.io.*, java.util.*, javax.microedition.io.* ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π²Π΅Ρ€ΡΠΈΠΈ 1.1 ΠΏΠ°ΠΊΠ΅Ρ‚ java.lang.ref.*. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ с J2SE, содСрТат ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ классов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

По Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΡ…ΡΡ с J2SE классов вСрсии Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° CLDC 1.0 соотвСтствуСт JDK 1.1, CLDC 1.1 — JDK 1.3. Иногда ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ HI, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ HotSpot Implementation (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ машина с ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ выполняСмого ΠΊΠΎΠ΄Π° Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ Ρ‡Π°ΡΡ‚ΠΎ выполняСмых кусков ΠΊΠΎΠ΄Π° Π² Ρ‡Π°ΡΡ‚ности, для J2SE ΠΎΠ½Π° стала Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с Π²Π΅Ρ€ΡΠΈΠΈ 1.3).

MIDP — СдинствСнный ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ для ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ CLDC. Он ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ, Π·Π²ΡƒΠΊΠΎΠΌ, взаимодСйствия с ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΡŽ (ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° ΠΈ ΡΠΊΡ€Π°Π½), Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ классов для отобраТСния стандартных экранов ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² управлСния. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π΅ основныС вСрсии MIDP API — 1.0 ΠΈ 2.0 (самих вСрсий MIDP большС, Π½ΠΎ Π² Π½ΠΈΡ… измСнСния ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ бСзопасности ΠΈ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ само API).

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ MIDP Π·Π°Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ тСхничСскиС характСристики:

— Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ экрана ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 96×54 пиксСля;

— 32 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π° динамичСской памяти;

— 128 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ ΠΏΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ MIDP;

— 8 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ для хранСния постоянных Π΄Π°Π½Π½Ρ‹Ρ…;

— Π±Π΅ΡΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Π°Ρ ΡΠ΅Ρ‚ΡŒ;

— ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΡ‚ Π°ΠΊΠΊΡƒΠΌΡƒΠ»ΡΡ‚ΠΎΡ€Π°.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ возмоТности устройств с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΠ±ΡƒΡΠ»Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². НапримСр, для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ MMAPI (JSR-135).

НСобходимой ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ CDLC являСтся KVM, которая ΠΈΠ·-Π·Π° компактности ΠΈΠΌΠ΅Π΅Ρ‚ ряд нСдоступных свойств:

— Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ся ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ числами;

— Π½Π΅Π»ΡŒΠ·Ρ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс-Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ для динамичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ классов Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния;

— ΠΎΡ‚сутствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ отраТСния — Π½Π°Π±ΠΎΡ€ срСдств для получСния ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ классС Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Java Native интСрфСйс — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ обращСния ΠΈΠ· Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ native-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ;

— Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ся финализация;

— ΠΎΡ‚сутствуСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ классом написания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств являСтся MIDlet. Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° основан Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… startApp (), pauseApp (), destroyApp () ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2.2.

Рисунок 2.2 — Π–ΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΌΠΈΠ΄Π»Π΅Ρ‚Π° ВсС экранныС Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ абстрактный класс Displayable. Π­Ρ‚ΠΎΡ‚ класс описываСт ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π±Π΅Π³ΡƒΡ‰ΡƒΡŽ строку, нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ событий. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ содСрТимоС Ρ„ΠΎΡ€ΠΌΡ‹ опрСдСляСтся подклассами. БущСствуСт ΡˆΠ΅ΡΡ‚ΡŒ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ экранных Ρ„ΠΎΡ€ΠΌ [3]:

— List позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ элСмСнты ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π² ΡΠΏΠΈΡΠΊΠ΅ прСдставляСтся строчкой ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Image;

— TextBox позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст;

— Alert ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ с Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌ ΠΎΠΊΠ½ΠΎΠΌ, ΠΎΠΏΠΎΠ²Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠΌ ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅ΠΉ ситуации;

— Form ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ строчки, изобраТСния, поля Π²Π²ΠΎΠ΄Π°, списки;

— Canvas позволяСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ самому ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ отрисовку, ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ paint (Graphics g);

— TextBox — прСдставляСт собой многострочноС ΠΏΠΎΠ»Π΅ для Π²Π²ΠΎΠ΄Π° ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ирования тСкста.

ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° экрана, Π²ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€, Π·Π²ΡƒΠΊ Π² MIDP 1.0 ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ (ΠΎΠ½ΠΈ появились Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² MIDP 2.0). Однако, Π½Π΅ ΡΠΌΠΎΡ‚ря Π½Π° Π²ΡΠ΅ эти ограничСния, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ это ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ свой собствСнный API, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Π΅ возмоТности. Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ ΠΌΠΈΠ΄Π»Π΅Ρ‚, сдСланный для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

J2ME-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»ΠΎΠ²: jad ΠΈ jar. Jad-Ρ„Π°ΠΉΠ» — это дСскриптор прилоТСния, тСкстовый Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ прилоТСния. Jar-Ρ„Π°ΠΉΠ» — это сама ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, это ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΈΠ΄Π»Π΅Ρ‚ΠΎΠ² (Midlet Suite).

2.2 Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LWUIT

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LWUIT базируСтся Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ MIDP 2.0 ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для быстрой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… интСрфСйсов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ. НапримСр, Π½Π° ΡΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Π°Ρ… Nokia элСмСнт StringItem (строковый элСмСнт Ρ„ΠΎΡ€ΠΌΡ‹) ставит послС сСбя символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки, Π° Π½Π° ΡΠΌΠ°Ρ€Ρ‚Ρ„ΠΎΠ½Π°Ρ… Sony Ericsson — Π½Π΅Ρ‚. На Nokia элСмСнт Ticker (бСгущая строка) Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ„ΠΎΡ€ΠΌΡ‹, Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… — Π½Π΅Ρ‚, Π° Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ… Ticker ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ. Вакая ΠΏΠΎΡ€Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ достигаСтся Π·Π° ΡΡ‡Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ собствСнного слоя ΠΏΠΎΠ²Π΅Ρ€Ρ… систСмной ΠΊΠ°Π½Π²Ρ‹ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… собствСнных элСмСнтов графичСского интСрфСйса.

LWUIT создана ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρƒ Swing ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса с Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΠΌΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ трСбованиями ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ ΠΈ ΡƒΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ трСбованиями ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ Π½Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ интСграция Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ SVG ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ MVC.

Данная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΡΡ‚Π°Π² Sun J2ME SDK 3.0 ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС возмоТности:

— ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΊΠΎΠ½;

— ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ стили;

— Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΡ;

— ΡΠ΅Π½ΡΠΎΡ€Π½Π°Ρ навигация.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΌ классом для всСх элСмСнтов графичСского интСрфСйса являСтся Component. ВсС элСмСнты Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π½Π° ΡΠΊΡ€Π°Π½Π΅. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°. Π‘Π°ΠΌΡ‹ΠΌ основным ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ являСтся Form, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ строка Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° свСрху, строка мСню с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π²Π½ΠΈΠ·Ρƒ ΠΈ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ располагаСтся ContentPane — ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ для элСмСнтов графичСского интСрфСйса. Π”Π°Π»Π΅Π΅ приводится листинг 2.1 создания простого прилоТСния с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ привСтствиС ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ.

Листинг 2.1 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹

import com.sun.lwuit. Display;

import com.sun.lwuit. Form;

import com.sun.lwuit. Label;

import com.sun.lwuit.layouts. BorderLayout;

import com.sun.lwuit.plaf.UIManager;

import com.sun.lwuit.util. Resources;

public class HelloMidlet extends javax.microedition.midlet.MIDlet {

public void startApp () {

// инициализация Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Display.init (this);

// Установка ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Ρ‚Π΅ΠΌΡ‹

try {

Resources r = Resources. open («/myresources.res»);

UIManager.getInstance ().setThemeProps (r.getTheme (

r.getThemeResourceNames () [0]));

} catch (java.io.IOException e) {

System.out.println («IOException «+e.getMessage ());

}

// 1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΡ‹

Form mainForm = new Form («Form Title»);

// 2. Установка LayoutManager

// для опрСдСлСния способа размСщСния ΠΊΠΎΠΏΠΎΠ½Π΅Ρ‚ΠΎΠ²

mainForm.setLayout (new BorderLayout ());

// 3. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Label Π² Ρ†Π΅Π½Ρ‚Ρ€ Ρ„ΠΎΡ€ΠΌΡ‹

mainForm.addComponent (BorderLayout.CENTER, new Label («Hello World»));

// 4. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ

mainForm.addCommand (new Command («Run», 2));

// 5. Π’Ρ‹Π²ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° ΡΠΊΡ€Π°Π½

mainForm.show ();

}

public void pauseApp () {

}

public void destroyApp (boolean unconditional) {

}

}

Π”Π°Π»Π΅Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ основныС элСмСнты графичСского интСрфСйса.

Label ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ строчку тСкста ΠΈ / ΠΈΠ»ΠΈ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ.

Button прСдставляСт собой ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ся Π½Π° ContentPane. ΠœΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ рисунок.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс ActionListener. Π”Π°Π»Π΅Π΅ приводится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ простого ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ (листинг 2.2).

Листинг 2.2 — ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ

final Button button = new Button («Old Text»);

button.addActionListener (new ActionListener () {

public void actionPerformed (ActionEvent evt) {

button.setText («New Text»);

}

});

RadioButton — Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ°, являСтся наслСдником Button.

ButtonGroup позволяСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² Π»ΡŽΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ….

CheckBox являСтся наслСдником RadioButton ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой Ρ„Π»Π°ΠΆΠΎΠΊ.

ComboBox — это Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список. К Π½Π΅ΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ всС возмоТности прорисовки, ΠΊΠ°ΠΊ ΠΈ Π΄Π»Ρ элСмСнтов списка List. Π’ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ спискС ComboBox ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строчки тСкста, Π½ΠΎ ΠΈ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ„Π»Π°ΠΆΠΊΠΈ, ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ списки.

TextArea прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст Π² Ρ‚Скстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° — это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС Π±ΠΎΠ»Π΅Π΅ слоТных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π²ΠΎΠ΄Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, T9).

TabbedPane — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², располоТСнными Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ….

2.3 Bluetooth

Bluetooth — это нСдорогая тСхнология, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ элСктронным устройствам ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ посрСдствам Ρ€Π°Π΄ΠΈΠΎΠΊΠ°Π½Π°Π»Π°. Радиус дСйствия Bluetooth-ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 15-Ρ‚ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Для связи ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ частота 2.45 GHz. Π’ Π½Π°ΡΡ‚оящСС врСмя доступна тСхнология Bluetooth вСрсии 1.1, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ радиосвязи, Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ.

ВСхнология Π½Π°Π·Π²Π°Π½Π° Π² Ρ‡Π΅ΡΡ‚ΡŒ короля Π”Π°Π½ΠΈΠΈ Harold Bluetooth, ТившСм Π² X Π²Π΅ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объСдинил ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» НорвСгиСй ΠΈ Π”Π°Π½ΠΈΠ΅ΠΉ.

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Bluetooth-устройство появилось Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ Π² 1999. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Bluetooth являСтся Bluetooth Special Interest Group. Π’ ΡΠΎΡΡ‚Π°Π² этой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ входят Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Sony Ericsson, Intel, IBM, Toshiba, Nokia, Microsoft, 3COM, Motorola.

ЦСль спСцификации ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Bluetooth — ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ взаимодСйствиС устройств Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, поэтому ΠΎΠ½Π° опрСдСляСт Ρ†Π΅Π»Ρ‹ΠΉ стСк ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ радиосистСму (рисунок 2.3).

Рисунок 2.3 — Π‘Ρ‚Π΅ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Bluetooth

HCI — это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ слой, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ стСка ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°. Π‘Π»ΠΎΠΈ Π½ΠΈΠΆΠ΅ the HCI, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ, Π° ΡΠ»ΠΎΠΈ Π²Ρ‹ΡˆΠ΅ — ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ. Однако устройства с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всю Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ.

Applications — ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Bluetooth, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠ°ΠΊ прилоТСния Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стСк ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ².

Telephony Control System (TCS) — обСспСчиваСт Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹ΠΉ сСрвис.

Service Discovery Protocol (SDP) — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для поиска сСрвисов Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Bluetooth-устройствС.

WAP ΠΈ OBEX — ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ интСрфСйсы для Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ слоя Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² связи.

RFCOMM — описываСт RS-232 ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс.

L2CAP — собираСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½ΠΈΡ… слоСв ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ².

HCI — управляСт связью ΠΌΠ΅ΠΆΠ΄Ρƒ хостом ΠΈ Bluetooth-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ.

Link Manager Protocol — ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами.

Baseband ΠΈ Link Controller — ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ физичСскими связями, частотой Ρ…ΠΎΠΏΠΎΠ² ΠΈ ΡΠ±ΠΎΡ€ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Radio — ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ Π΄Π΅ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Ρƒ.

ВСхнология Bluetooth ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ тСхничСский ΠΏΡ€ΠΈΠ΅ΠΌ FHSS. Π Π°Π΄ΠΈΠΎΠ΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ дСлится Π½Π° 79 ΠΏΠΎΠ΄ΠΊΠ°Π½Π°Π»ΠΎΠ². Π’ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡ‚ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ°Π½Π°Π»ΠΎΠ². ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ (Ρ…ΠΎΠΏ) происходит ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 625 микросСкунд (1600 Ρ…ΠΎΠΏΠΎΠ² Π·Π° ΡΠ΅ΠΊΡƒΠ½Π΄Ρƒ). Π’Π°ΠΊΠΎΠ΅ частоС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡŽ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ рядом располоТСнными Bluetooth-устройствами ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ устройствами, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ частот (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, микроволновая ΠΏΠ΅Ρ‡ΡŒ ΠΈΠ»ΠΈ Wi-Fi).

Если устройство взаимодСйствуСт Ρ‡Π΅Ρ€Π΅Π· Bluetooth ΠΈ Wi-Fi ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ся ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ AFH.

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ Bluetooth-устройству назначаСтся ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 48-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…ΠΎΠΏΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… бСзопасности Bluetooth.

ΠŸΠΈΠΊΠΎΡΠ΅Ρ‚ΡŒ — это Ρ„ΠΎΡ€ΠΌΠ° Bluetooth-сСти (рисунок 2.4). Она состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ мастСра ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 7) ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… устройств (slaves).

Рисунок 2.4 — ΠŸΠΈΠΊΠΎΡΠ΅Ρ‚ΡŒ Устройство, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ соСдинСниС, автоматичСски становится мастСром. ΠŸΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹Π΅ устройства ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠΌ Π²Ρ€Π΅ΠΌΡ. ВсС взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½Ρ‹ΠΌΠΈ устройствами ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Ρ‡Π΅Ρ€Π΅Π· мастСра. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства ΠΊ ΠΏΠΈΠΊΠΎΡΠ΅Ρ‚ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΎΠ±ΠΌΠ΅Π½ ролями.

Π”Π²Π΅ пикосСти ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ€Π°Π΄ΠΈΠΎΠ΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Частота Ρ…ΠΎΠΏΠΎΠ² Π½Π΅ ΡΠΈΠ½Ρ…ронизируСтся ΠΌΠ΅ΠΆΠ΄Ρƒ пикосСтями, поэтому всСгда Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ частотС.

Π”Π²Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ пикосСти ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Ρ€Π°ΡΡΠ΅ΡΠ½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ — scatternet (рисунок 2.5). ΠžΠ±Ρ‰ΠΈΠΉ ΡƒΠ·Π΅Π» являСтся раздСляСмым ΠΈ Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ пикосСти, Ρ‡Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² Π΄Π²Π° Ρ€Π°Π·Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ.

Рисунок 2.5 — ВзаимодСйствиС Π΄Π²ΡƒΡ… пикосСтСй

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ поиска рядом находящихся Bluetooth-устройств (inquiry) Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ устройство Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Bluetooth-адрСса ΠΈ Π²Ρ€Π΅ΠΌΡ всСх ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… устройств. Π§Ρ‚ΠΎΠ±Ρ‹ устройство Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρƒ Π½Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ доступности — IAC. IAC ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π²Π° значСния: GIAC ΠΈ LIAC. GIAC ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ устройству Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ всСгда, Π° LIAC — ΠΊΠΎΠ³Π΄Π° устройство Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ доступно Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

ПослС обнаруТСния устройства ΠΌΠΎΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ доступных сСрвисов. Для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Service Discovery Protocol.

Bluetooth-устройство Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ±ΠΎ всСх своих сСрвисах Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… — Service Discovery DataBase. КаТдая запись Π² Π½Π΅ΠΉ содСрТит Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ сСрвис. Атрибуты ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ 16-Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ записи ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ServiceRecordHandle (ID 0×0000) ΠΈ ServiceClassIDList (ID 0×0001). Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ содСрТат Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… для хранСния этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΈ ΡΠ°ΠΌΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ….

Universally Unique IDentifier (UUID) — это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ сСрвисов, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ ΠΈ ΠΏΡ€. ΠžΠ½ прСдставляСт собой 128-Π±ΠΈΡ‚Π½ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся всСгда ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ. Bluetooth-тСхнология ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ UUID Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… UUID Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ для Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… сСрвисов, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ.

Bluetooth-ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ прСдоставляСт Π½Π°Π±ΠΎΡ€ высокоуровнСвых ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… способов использования Π²Π΅Ρ€Ρ…Π½ΠΈΡ… слоСв Bluetooth. ΠŸΡ€ΠΎΡ„ΠΈΠ»ΡŒ опрСдСляСт способ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Bluetooth.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ использовании Bluetooth ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ бСспроводным способом Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠ°Π½Ρ‹ рядом находящимися устройствами, Π° Ρ‚Π°ΠΊΠΆΠ΅ устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ доступно для обнаруТСния, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ΠΎ ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ сСрвисов ΠΈ ΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ использованию.

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ спСцификация Bluetooth опрСдСляСт модСль бСзопасности, ΡΠΎΡΡ‚ΠΎΡΡ‰ΡƒΡŽ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: аутСнтификация, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, авторизация. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ входят Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ GAP, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ всСми сСртифицированными Bluetooth-устройствами:

— Π½Π΅Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ;

— Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСрвисов — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Bluetooth-устройств. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ сСрвиса. ΠœΠ΅Ρ€Ρ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ высокими слоями послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Bluetooth-связь ΡƒΠΆΠ΅ установлСна Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ слоями;

— Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ установлСния связи — инициируСтся Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΈΠΌΠΈ слоями Π² ΡΡ‚Π΅ΠΊΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² Bluetooth. Π­Ρ‚ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Bluetooth-устройств с Π·Π°Π²ΠΎΠ΄ΡΠΊΠΈΠΌΠΈ прСдустановлСнными настройками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

На Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Ρ… устройствах с Bluetooth ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ сам ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности.

БопряТСниС, ΠΈΠ»ΠΈ связываниС (bonding), — это ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Bluetooth-устройствами Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, зависящая ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΠΌΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°. Если Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° Π½Π΅Ρ‚ Ρƒ Π½ΠΈΡ…, Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ создан Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сопряТСния.

ГСнСрация Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° называСтся ΠΏΠ°Ρ€ΠΈΠ½Π³ΠΎΠΌ (pairing). ΠŸΠ°Ρ€ΠΈΠ½Π³ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π°, послС Ρ‡Π΅Π³ΠΎ выполняСтся взаимная аутСнтификация.

ΠšΠ»ΡŽΡ‡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основан Π½Π° ΠΊΠ»ΡŽΡ‡Π΅ доступа (Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ случайном числС) ΠΈ Bluetooth-адрСсС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΡΡ‚ройств. ΠšΠ»ΡŽΡ‡ доступа становится извСстным Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΡƒΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ устройствам. АутСнтификационный ΠΊΠ»ΡŽΡ‡ основан Π½Π° ΡΠ»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠΌ числС ΠΈ Bluetooth-адрСсах ΠΎΠ±ΠΎΠΈΡ… устройств. ΠšΠ»ΡŽΡ‡ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для создания Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π° ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ отбрасываСтся.

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ процСсса ΠΏΠ°Ρ€ΠΈΠ½Π³Π° устройства ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Оба устройства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡. Устройства Π΄Π°Π»Π΅Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ сопряТСнными ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° Ρ‡Π΅Ρ€Π΅Π· bonding Π±Π΅Π· ΠΊΠ»ΡŽΡ‡Π° доступа.

Устройства ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² ΠΏΠ°Ρ€ΠΈΠ½Π³Π΅ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ установлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€ΠΈΠ½Π³Π° ΠΈΠ»ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡƒΡΡ‚ройств.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΈ частом установлСнии соСдинСния ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ устройствами.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π²Π° устройства Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ соСдинСния Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ· ΡΡ‚ΠΈΡ… устройств.

Π”ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ устройства Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π»ΠΈΠ½Π΅ ΠΊΠ»ΡŽΡ‡Π°.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ‚Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ:

— ΠΎΡ‚сутствиС ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ — Ссли ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡƒΡΡ‚ройств Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ соСдинСниС Π±Π΅Π· ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ;

— ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²;

— ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами.

Π”ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ устройства Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΊΠ»ΡŽΡ‡Π° (8 — 128 Π±ΠΈΡ‚).

Авторизация — это процСсс прСдоставлСния ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ Bluetooth-устройству доступа ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ сСрвису. Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ устройство Π²Π½Π°Ρ‡Π°Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ сначала Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· bonding.

Доступ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдоставлСн Π½Π° Π²Ρ€Π΅ΠΌΡ ΠΈΠ»ΠΈ постоянно.

ΠŸΡ€ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ устройства ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ установлСн Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ trust, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ассоциируСт ΠΏΡ€Π°Π²Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ устройством. Устройство с Ρ‚Π°ΠΊΠΈΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ (Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ устройство) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Bluetooth-сСрвису ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ Π±Π΅Π· Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… устройствах ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… уровнях Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сСрвисов, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π΄Π²Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… — ΠΎΠ΄Π½Π° для устройств, другая для сСрвисов. НСкоторым слоям Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ доступ ΠΊ ΡΡ‚ΠΈΠΌ Π±Π°Π·Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ бСзопасности.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ бСзопасности, — это запрос ΠΊΠ»ΡŽΡ‡Π° доступа Π²ΠΎ Π²Ρ€Π΅ΠΌΡ процСсса ΠΏΠ°Ρ€ΠΈΠ½Π³Π° ΠΈ Π·Π°ΠΏΡ€ΠΎΡ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ устройство пытаСтся ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ с ΡΠ΅Ρ€Π²ΠΈΡΠΎΠΌ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставлСниС интСрфСйса для настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² бСзопасности.

3. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния для мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ J2ME

3.1 ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВрСбуСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для мобильного Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ J2ME, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ видСонаблюдСниС ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС возмоТности:

— Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ врСмя Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡ видСонаблюдСния;

— ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ двиТСния ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° SMS-сообщСния ΠΈΠ»ΠΈ MMS-сообщСния с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ;

— ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Ρ… ситуациях Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€;

— Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ для Π²Ρ‹Π±ΠΎΡ€Π° ΠΈΠ»ΠΈ создания ΠΏΠ°ΠΏΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ;

— ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π²ΠΈΠ΄Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹, Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ² ΠΏΠΎ Bluetooth.

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Bluetooth трСбуСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΈΠ΄Π»Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈ нСобходимости ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π² Π·Π°Ρ€Π°Π½Π΅Π΅ Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ.

3.2 ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ интСрфСйса

ГрафичСский интСрфСйс прилоТСния Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LWUIT. Π‘Ρ‚ΠΈΠ»ΡŒ оформлСния всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… элСмСнтов интСрфСйса Π±Ρ‹Π» настроСн Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ настройки стиля ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅.

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. Π‘Ρ‚ΠΈΠ»ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта опрСдСляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса Style. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ getStyle (). Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setStyle () ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ½ΠΎΠΏΠΎΠΊ. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ UIManager. getInstance (), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт ΡΡ‚ΠΈΠ»ΡŒ оформлСния всСх элСмСнтов ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π”Π°Π»Π΅Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ setComponentStyle с Π΄Π²ΡƒΠΌΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ — имя класса ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Style. Π’ Π»ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 3.1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ настройки стиля тСкстового поля ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Листинг 3.1 — ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ стиля оформлСния для тСкстового поля

/**

* Configure TextField Style

*

* @param manager — User Interface Manager

*/

private void configureTextField (UIManager manager) {

Style textFieldStyle = new Style ();

textFieldStyle.setFgSelectionColor (0×0000);

textFieldStyle.setFgColor (0×0);

textFieldStyle.setBgTransparency (0×00);

textFieldStyle.setFont (boldFont);

textFieldStyle.setBorder (Border.createLineBorder (1));

manager.setComponentStyle («TextField», textFieldStyle);

}

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.1 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° экранная Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ элСмСнтами ΠΈ ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ стилями.

Рисунок 3.1 — Заставка прилоТСния ΠŸΡ€ΠΈ создании экрана заставки (рисунок 3.1) Π±Ρ‹Π»ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ. Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ LWUIT Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ способа размСщСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², поэтому Π±Ρ‹Π» создан класс CenterLayout (листинг 3.2), Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠΉ класс Layout. Layout являСтся абстрактным классом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ классы-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹ размСщСния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Π’ Π½ΠΎΠ²ΠΎΠΌ классС Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ layoutContainer (Container parent) ΠΈ getPreferredSize (Container parent).

Листинг 3.2 — Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ элСмСнтов ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ

/**

* Layout the given parent container children

* @param parent the given parent container

*/

public class CenterLayout extends Layout {

public void layoutContainer (Container parent) {

int components = parent. getComponentCount ();

Style parentStyle = parent. getStyle ();

int centerPos = parent. getLayoutWidth () / 2 +

parentStyle.getMargin (Component.LEFT);

int y = parentStyle. getMargin (Component.TOP);

for (int iter = 0; iter < components; iter++) {

Component current = parent. getComponentAt (iter);

Dimension d = current. getPreferredSize ();

current.setSize (d);

current.setX (centerPos — d. getWidth () / 2);

Style currentStyle = current. getStyle ();

y += currentStyle. getMargin (Component.TOP);

current.setY (y);

y += d. getHeight () + currentStyle. getMargin (Component.BOTTOM);

}

}

/**

* Returns the container preferred size

*

* @param parent the parent container

* @return the container preferred size

*/

public Dimension getPreferredSize (Container parent) {

int components = parent. getComponentCount ();

Style parentStyle = parent. getStyle ();

int height = parentStyle. getMargin (Component.TOP)

+ parentStyle. getMargin (Component.BOTTOM);

int marginX = parentStyle. getMargin (Component.RIGHT)

+ parentStyle. getMargin (Component.LEFT);

int width = marginX;

for (int iter = 0; iter < components; iter++) {

Component current = parent. getComponentAt (iter);

Dimension d = current. getPreferredSize ();

Style currentStyle = current. getStyle ();

width = Math. max (d.getWidth () + marginX

+ currentStyle. getMargin (Component.RIGHT) +

currentStyle.getMargin (Component.LEFT), width);

height += currentStyle. getMargin (Component.TOP) + d. getHeight () +

currentStyle.getMargin (Component.BOTTOM);

}

Dimension size = new Dimension (width, height);

return size;

}

}

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ листингС 3.3 содСрТится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ экранной Ρ„ΠΎΡ€ΠΌΡ‹-заставки с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ класса-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° размСщСния элСмСнтов CenterLayout.

Листинг 3.3 — Экранная Ρ„ΠΎΡ€ΠΌΠ° заставки

public class SplashScreen extends Form {

public SplashScreen () {

setLayout (new CenterLayout ());

setTitle («Welcome»);

addComponent (new Label ((«Video observer»)));

addComponent (new Label ((«by M. Luskanova»)));

}

}

Рисунок 3.2 — Π“Π»Π°Π²Π½ΠΎΠ΅ мСню Для создания Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню (рисунок 3.2) Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ½ΠΊΡ‚ мСню. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Ρ‚Π°ΠΊΠΎΠ³ΠΎ мСню являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ строчками ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт ΠΈΡ… ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. Вакая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ достигаСтся Π·Π° ΡΡ‡Π΅Ρ‚ наслСдования ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° Container ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² getComponentAt () ΠΈ pointerPressed () (листинг 3.4).

ΠœΠ΅Ρ‚ΠΎΠ΄ getComponentAt (int x, int y) вызываСтся, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, находящийся Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ экрана. Если этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ элСмСнт, входящий Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, выдСлСния) Π² ΡΠ»ΡƒΡ‡Π°Π΅, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ элСмСнт Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°.

ΠœΠ΅Ρ‚ΠΎΠ΄ pointerPressed (int x, int y) выполняСтся Π² ΡΠ»ΡƒΡ‡Π°Π΅ наТатия сСнсорного указатСля. Если этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Листинг 3.4 — ΠŸΡƒΠ½ΠΊΡ‚ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню

public class MylistItem extends Container implements FocusListener {

private Style selectedStyle =

UIManager.getInstance ().getComponentStyle («_selected»);

private Style unselectedStyle =

UIManager.getInstance ().getComponentStyle («_unselected»);

/**

* This method provides performance of

* included components as one

*/

public Component getComponentAt (int x, int y) {

return this;

}

/**

* Do nothing when user clicks on any element

*/

public void pointerPressed (int x, int y) {

}

/**

* Returns «_unselected» style by default

*/

protected String getUIID () {

return «_unselected» ;

}

/**

* Change style for selected menu item

*/

public void focusGained (Component cmp) {

cmp.setStyle (selectedStyle);

}

/**

* Change style for unselected menu item

*/

public void focusLost (Component cmp) {

cmp.setStyle (unselectedStyle);

}

}

ΠœΠ΅Ρ‚ΠΎΠ΄ getUIID () ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ Π½Π΅Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. ΠœΠ΅Ρ‚ΠΎΠ΄ focusGained () вызываСтся ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ мСню фокуса, ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ трСбуСтся этот ΠΏΡƒΠ½ΠΊΡ‚ ΠΎΡ‚Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ стилСм.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ фокуса Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΠ½ΠΊΡ‚ мСню Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ этого ΠΏΡƒΠ½ΠΊΡ‚Π° Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, Ρ‡Ρ‚ΠΎ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π² ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ focusLost ().

Π‘Π°ΠΌΠΎ мСню создаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ класса (листинг 3.5). Preferences. getInstanse () — это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…Ρ€Π°Π½ΠΈΡ‚ всС сдСланныС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ настройки.

Листинг 3.5 — Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню

Preferences pr = Preferences. getInstanse ();

setLayout (new BoxLayout (BoxLayout.Y_AXIS));

getContentPane ().setIsScrollVisible (false);

MylistItem mli = new MylistItem (MainMenuConstatns.SCHEDULE, «Schedule»);

if (! pr. isStartRecordFromUnbounded ()) {

mli.addString («from» +

pr.getStartRecordFromCalendar ().get (java.util. Calendar. YEAR) +" ." +

pr.getStartRecordFromCalendar ().get (java.util. Calendar. MONTH) +" ." +

pr.getStartRecordFromCalendar ().get (java.util. Calendar. DAY_OF_MONTH)

+" «+pr.getStartRecordFromCalendar ().get (java.util. Calendar. HOUR_OF_DAY)

+" :" +pr.getStartRecordFromCalendar ().get (java.util. Calendar. MINUTE));

}

if (! pr. isEndRecordAtUnbounded ()) {

mli.addString («till» +

pr.getEndsRecordAtCalendar ().get (java.util. Calendar. YEAR) +" ." +

pr.getEndsRecordAtCalendar ().get (java.util. Calendar. MONTH) +" ." +

pr.getEndsRecordAtCalendar ().get (java.util. Calendar. DAY_OF_MONTH) + «» +

pr.getEndsRecordAtCalendar ().get (java.util. Calendar. HOUR_OF_DAY) +" :" +

pr.getEndsRecordAtCalendar ().get (java.util. Calendar. MINUTE));

}

if (! pr. isStartRecordFromUnbounded () ||! pr. isEndRecordAtUnbounded ()) {

if (pr.isScheduleIsActive ()) {

mli.addString («Active»);

} else {

mli.addString («Disabled»);

}

}

addComponent (mli);

mli = new MylistItem (MainMenuConstatns.TRANSLATE_VIDEO, «Translate video»);

addComponent (mli);

if (pr.getBTConnectionURL ()≠ «») {

mli.addString («via bluetooth to «+pr.getBTFriendlyName ());

}

if (pr.getSaveVideoToFile ()≠ «») {

mli.addString (pr.getSaveVideoToFile ());

}

if (pr.getMovNotification ()≠ «») {

String msgType = (pr.isSendSMS ()? «sms»: «mms») +" to" ;

addComponent (new MylistItem (MainMenuConstatns.MOVEMENT_NOTIFICATION,

new String[] {" Movement notification", msgType

+ pr. getMovNotification ()}));

} else {

addComponent (new MylistItem (MainMenuConstatns.MOVEMENT_NOTIFICATION,

" Movement notification"));

}

if (pr.getErrNotificationNumber ()≠ «») {

addComponent (new MylistItem (MainMenuConstatns.ERROR_NOTIFICATION,

new String[] {" Error Notification", pr. getErrNotificationNumber ()}));

} else {

addComponent (new MylistItem (MainMenuConstatns.ERROR_NOTIFICATION,

" Error Notification"));

}

addComponent (new MylistItem (MainMenuConstatns.CAMERA, «Camera»));

addComponent (new MylistItem (MainMenuConstatns.EXIT, «Exit»));

addComponent (new MylistItem (MainMenuConstatns.HELP, «Help»));

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° наТатия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, какая экранная Ρ„ΠΎΡ€ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΄Π°Π»Π΅Π΅, выполняСтся Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ листингС 3.6.

Листинг 3.6 — ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ ΠΊΠ½ΠΎΠΏΠΎΠΊ для Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню

class MainMenuActionListener implements ActionListener {

public void actionPerformed (ActionEvent act) {

Component cmp = getFocused ();

if (cmp instanceof MylistItem) {

int id = ((MylistItem) cmp).getId ();

switch (id) {

case MainMenuConstatns. SCHEDULE:

midlet.getScheduleDisplay ().show ();

break;

case MainMenuConstatns. TRANSLATE_VIDEO:

midlet.getVideoTransmitionDisplay ().show ();

break;

case MainMenuConstatns. MOVEMENT_NOTIFICATION:

midlet.getMovementNotificationDisplay ().show ();

break;

case MainMenuConstatns. CAMERA:

midlet.getCamera ().show ();

midlet.getCamera ().startCamera ();

midlet.getCamera ().revalidate ();

break;

case MainMenuConstatns. EXIT:

midlet.exitMIDlet ();

break;

case MainMenuConstatns. HELP:

midlet.getHelpScreen ().show ();

break;

case MainMenuConstatns. ERROR_NOTIFICATION:

midlet.getErrorNotification ().show ();

break;

}

}

}

На Ρ„ΠΎΡ€ΠΌΠ΅ настройки расписания (рисунок 3.3) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ динамичСскоС скрытиС / ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтов, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: ΠΊΠΎΠ³Π΄Π° выбираСтся Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠ° enter time, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сразу ΠΏΠΎΠ΄ Π½Π΅ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ поля для Π²Π²ΠΎΠ΄Π° часов, ΠΌΠΈΠ½ΡƒΡ‚, дня, мСсяца, Π³ΠΎΠ΄Π°. А ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ unbounded эти поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ скрыты.

Рисунок 3.3 — Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ расписания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ Вакая Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ рСализуСтся ΠΏΡƒΡ‚Π΅ΠΌ указания Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΊΠΈ ActionListener, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отслСТиваСт Π²Ρ‹Π±ΠΎΡ€ Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ (листинг 3.7). dateFrom ΠΈ dateTo ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° Container ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ поля для указания Ρ‚ΠΎΡ‡Π½ΠΎΠΉ Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Листинг 3.7 — ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Ρ‹Π±ΠΎΡ€Π° Ρ€Π°Π΄ΠΈΠΎΠΊΠ½ΠΎΠΏΠΎΠΊ

public void actionPerformed (ActionEvent evt) {

Component cmp = (Component) evt. getSource ();

if (cmp == rb1DateFromEnter) {

if (rb1DateFromEnter.isSelected ()) {

if (! getContentPane ().contains (dateFrom)) {

addComponent (3, dateFrom);

revalidate ();

return;

}

}

}

if (cmp == rbDateFromUnbounded) {

if (getContentPane ().contains (dateFrom)) {

removeComponent (dateFrom);

revalidate ();

return;

}

}

if (cmp == rbDateToEnter) {

if (rbDateToEnter.isSelected ()) {

if (! getContentPane ().contains (dateTo)) {

addComponent (getContentPane ().getComponentCount () — 2, dateTo);

dateTo.setFocus (true);

revalidate ();

return;

}

}

}

if (cmp == rbDateToUnbounded) {

if (getContentPane ().contains (dateTo)) {

removeComponent (dateTo);

revalidate ();

return;

}

}

}

Рисунок 3.4 — Экранная Ρ„ΠΎΡ€ΠΌΠ° со ΡΠΏΠΈΡΠΊΠΎΠΌ Для всСх списков Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ способ ΠΈΡ… ΠΎΡ‚обраТСния — класс MyListCellRenderer. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для отобраТСния списков примСняСтся DefaultListCellRenderer, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ всС элСмСнты ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ класса Label. Для создания своСго способа отобраТСния элСмСнтов списка Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс ListCellRenderer.

ΠœΠ΅Ρ‚ΠΎΠ΄ getListCellRendererComponent этого интСрфСйса Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ элСмСнт списка ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΅ΠΌΡƒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² getListFocusComponent обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ настройки стилСй отобраТСния Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈ Π½Π΅Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта списка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ списка, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ MyListCellRenderer, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.4. Π’ Π»ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 3.8 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прорисовываСт список.

Листинг 3.8 — ΠŸΡ€ΠΎΡ€ΠΈΡΠΎΠ²ΠΊΠ° списка

public class MyListCellRenderer extends Container implements ListCellRenderer {

public MyListCellRenderer () {

setLayout (new BoxLayout (BoxLayout.Y_AXIS));

}

/**

* Returns displayable list element from received object

*/

public Component getListCellRendererComponent (List list, Object value,

int index, boolean isSelected) {

if (value instanceof String) {

setText ((String) value);

} else {

setText (value.toString ());

}

setFocus (isSelected);

applyStyle (this, isSelected);

return this;

}

/**

* Applies style for selected and unselected element

*/

private void applyStyle (Component component, boolean isSelected) {

Style style = null;

if (isSelected) {

style = UIManager. getInstance ().getComponentStyle («_selected»);

} else {

style = UIManager. getInstance ().getComponentStyle («_unselected»);

}

component.setStyle (style);

}

public Component getListFocusComponent (List list) {

return null;

}

}

3.3 ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ Bluetooth

API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Bluetooth содСрТится Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ JSR-82. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²: Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Bluetooth API ΠΈ OBEX.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Bluetooth Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 512 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ памяти, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ CLDC.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ возмоТности Bluetooth, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ интСрфСйс DiscoveryListener ΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ deviceDiscovered (), inquiryCompleted (), servicesDiscovered (), serviceSearchCompleted (), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для обнаруТСния рядом находящихся Bluetooth-устройств.

Π”Π°Π»Π΅Π΅ приводится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ (листинг 3.9), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ поиск. Π’Π½Π°Ρ‡Π°Π»Π΅ инициализируСтся пСрСмСнная LocalDevice local, которая прСдставляСт собой Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½; ΠΏΠΎΡ‚ΠΎΠΌ инициализируСтся пСрСмСнная DiscoveryAgent agent. ИмСнно этот ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запускаСт поиск ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ startInquiry () с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ DiscoveryAgent. GIAC ΠΈ ΡΡΡ‹Π»ΠΊΠΎΠΉ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» интСрфСйс DiscoveryListener ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС события, связанныС с ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ устройств ΠΈ ΠΈΡ… ΡΠ΅Ρ€Π²ΠΈΡΠΎΠ². Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли поиск устройств Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚, ΠΈΠ»ΠΈ false Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ Vector devicesFound ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния всСх ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… устройств.

Листинг 3.9 — Начало поиска устройств

* This method starts device discovering

*/

public void doDeviceDiscovery () {

try {

local = LocalDevice. getLocalDevice ();

} catch (BluetoothStateException bse) {

Log.out.println («EXCEPTION!» + bse. toString ());

}

agent = local. getDiscoveryAgent ();

devicesFound = new Vector ();

try {

if (! agent. startInquiry (DiscoveryAgent.GIAC, this)) {

Log.out.println («DISCOVERING IS NOT STARTED»);

}

} catch (BluetoothStateException bse) {

Log.out.println («BluetoothStateException «+ bse. toString ());

}

}

ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Bluetooth-устройства вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ deviceDiscovered (), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ΅ устройство remoteDevice ΠΈ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ deviceClass.

Π”Π°Π»Π΅Π΅ приводится ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ (листинг 3.10) этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ выполняСтся Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΡΠΏΠΈΡΠΎΠΊ, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π½Π° ΡΠΊΡ€Π°Π½Π΅, доступных рядом находящихся Bluetooth-устройств. НайдСнноС устройство Ρ‚Π°ΠΊΠΆΠ΅ добавляСтся Π² ΠΌΠ°ΡΡΠΈΠ² devicesFound.

Листинг 3.10 — ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события, связанного с ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства

/**

* Called when a device is discovered during device discovery

* @param remoteDevice founded device

* @param deviceClass

public void deviceDiscovered (RemoteDevice remoteDevice,

DeviceClass deviceClass) {

try {

midlet.getSelectDeviceDisplay ().getDevicesList ().addItem (

remoteDevice.getFriendlyName (false));

devicesFound.addElement (remoteDevice);

} catch (IOException ex) {

Log.out.println («ex when device has been discovered «+ex.toString ());

}

}

ПослС окончания поиска всСх устройств вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ inquiryCompleted (), Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТится ΠΊΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° поиска. Π”Π°Π»Π΅Π΅ приводится этот ΠΌΠ΅Ρ‚ΠΎΠ΄ (листинг 3.11).

Листинг 3.11 — Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ поиска устройств

/**

* Called when device discovering is complete

* @param — param discovering status

public void inquiryCompleted (int param) {

midlet.getSelectDeviceDisplay ().removeCommand (midlet.getSelectDeviceDisplay ().

getStopSearchDevices ());

midlet.getSelectDeviceDisplay ().addCommand (midlet.getSelectDeviceDisplay ().

getBackSelectDevice ());

switch (param) {

case DiscoveryListener. INQUIRY_COMPLETED:

if (devicesFound.size () > 0) {

midlet.getSelectDeviceDisplay ().removeCommand (

midlet.getSelectDeviceDisplay ().getStopSearchDevices ());

midlet.getSelectDeviceDisplay ().addCommand (

midlet.getSelectDeviceDisplay ().getBackSelectDevice ());

doServiceSearch ((RemoteDevice) devicesFound. elementAt (0));

} else

break;

case DiscoveryListener. INQUIRY_ERROR:

//Error during inquiry

break;

case DiscoveryListener. INQUIRY_TERMINATED:

// Inquiry terminated by agent. cancelInquiry ()

break;

}

}

Рисунок 3.5 — Бписок Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… устройств ПослС поиска устройств (Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.5 ΠΏΠΎΠΊΠ°Π·Π°Π½ список ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… устройств) начинаСтся поиск сСрвисов Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ…. НайдСнныС сСрвисы Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ServiceRecord[] servicesFound. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ листингС 3.12 приводится ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ поиск сСрвисов. Для Π½Π°Ρ‡Π°Π»Π° поиска вызываСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ searchServices () Ρ€Π°Π½Π΅Π΅ созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DiscoveryAgent agent, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ искомого сСрвиса ΠΈΠ»ΠΈ Π΅Π³ΠΎ UUID, ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ устройство, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ поиск, Π° Ρ‚Π°ΠΊΠΆΠ΅ ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ всС события, связанныС с ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ сСрвисов.

Листинг 3.12 — Π˜Π½ΠΈΡ†ΠΈΠ°Ρ†ΠΈΡ поиска сСрвисов

/**

* This method starts service search on the divice

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ