- Пристрої для тестування
- Windows Phone 8 і Bluetooth сканер
- Підготовка Windows Phone 8 додатка для роботи з Bluetooth пристроєм
Для реалізації проекту з модернізації системи складського зберігання потрібно було підібрати недорогу, але досить зручну і надійну зв'язку зчитувача штрих-кодів (barcode reader) і мобільного пристрою з якими будуть працювати співробітники складу.
В якості мобільного пристрою планувалося використовувати недорогий смартфон. iOS пристрою відпадали відразу через високу ціну. Android девайси підходили за ціною, але мене кілька насторожували регулярні проблеми з безпекою цієї ОС. Крім того управляти ними в корпоративному середовищі досить непросто, оскільки пристрої різних виробників навіть з однією і тією-ж версією операційної системи працюють по різному. Підбирати настройки - справа невдячна. Крім того писати софт під Android та iOS для розробників займаються розробкою під .NET - штука незвична. З огляду на все вищесказане звернув свій погляд на смартфони під Windows Phone 8.
Перспективи цих девайсів, на мій погляд, непогані:
- Visual Studio 2012 - вельми зручне середовище розробки. Розробник писав софт під .NET без зусиль розбереться з основами програмування під Windows Phone 7/8.
- Адаптація коду .NET додатків написаних під Windows відносно нескладна. Розробка програми працює з web сервісами під Windows Phone у мене зайняло небагато часу. Я без особливих складнощів написав додаток, яке працює з опублікованими на 1С web сервісом .
- Інтерфейс досить простий і лаконічний, що спрощує освоєння пристрою.
- Батарея витрачається куди економніше, ніж Android пристроями.
- і т.п.
Пристрої для тестування
Оскільки Windows Phone апаратів з вбудованим лазерним зчитувачем штрих-кодів поки на ринку не з'явилося, а коли вони і з'являться, швидше за все спочатку будуть коштувати недешево, зупинився на використанні Bluetooth сканера. В якості тестового смартфона був обраний Nokia Lumia 620 . Девайс досить компактний, добре лежить як в чоловічій, так і жіночій руці, корпусу «рогач». Щоб випустити з рук потрібно постаратися. Батарея в режимі очікування тримає до трьох днів. Екран досить якісний для своєї ціни. Ціна на «сірі» апарати опустилася нижче 8 тис. Руб ., Тобто навіть якщо комірник ненавмисно розіб'є - не так страшно.
У мене був досвід придбання для виробничників "невбиваних» дорогущих телефонів Samsung, захищених по IP 54, які здохли своєю смертю через рік, як тільки закінчилася гарантія, при тому, що дешеві телефони «Білайну» A100, цілком собі непогано працюють вже кілька років в тих-таки самих умовах.
Крім того для Nokia 620 є спортивні чохли на руку , А також недорога задня кришка, захищена по IP54, тобто можна нормально екіпірувати комірника. 🙂
Як сканера штрих-коду був обраний недорогий компактний сканер http://www.koamtac.com/kdc200.html виробництва корейської KoamTac. Для нього також доступний набір аксесуарів на зразок рукавички для носіння сканера штрих-коду, що виключає падіння пристрою. Корпус пристрою досить міцний з гумовим чохлом. Оскільки пристрій дуже легке, падіння йому явно не страшно. Користуватися пристроєм просто - одна кнопка для сканування, запам'ятає будь-хто.
При виборі бездротового сканера штрих-коду потрібно вибирати серед пристроїв підтримують Bluetooth профіль SPP. Таких пристроїв нині не мало, є з чого вибрати.
Windows Phone 8 і Bluetooth сканер
При виборі Windows Phone 8 пристрою в якості пристрою для роботи з Bluetooth сканером мені і в голову не могло прийти, що Windows Phone 8 не підтримує штатно широко поширені Bluetooth профілі HID і SPP. Власне дізнався я про це лише після того, як «спарил» Lumia 620 і KDC 200. Пристрої «спарилися» нормально, проте після декількох секунд сканер видавав, що «connection failed !!!» і відвалювався. Також негуманно надходила Lumia 620. Зайнявся з'ясуванням причин проблеми я і натрапив на можна побачити різні режими підтримуваних Windows Phone 8 . На мій превеликий розчарування ні HID ні SPP в списку не значилося.
Отже, любителі гаджетів, начебто Bluetooth клавіатур і мишей будуть дещо розчаровані відсутністю підтримай HID. Я ж був розчарований підтримкою обох профілів з яким можна було спілкуватися з Bluetooth сканером. Тому почав шукати вихід з положення. Покопавши в Інтернеті я знайшов, що Windows Phone 8 підтримує Radio Frequency Communication (RFCOMM) протокол, який є базовим протоколом для профілю Serial Port Profile (SPP). Тому зажевріла надія, що все-таки вдасться «спарити» два пристрої. Благо завдання істотно спростилася, коли я натрапив на бібліотеку 32FEET.NET . Спілкування з гуру на місцевому форумі принесло свої плоди, вдалося «спарити» пристрою.
Моїм основним помилкою, коли я намагався «спарити» пристрою, які не мають спільних підтримуваних профілів, було очікування, що пристрої якось домовляться і зможуть з'єднатися. Позначався стереотип від перманентного використання Bluetooth гарнітур / навушників Jabra / AKG. В даному випадку так не працює, тобто у випадку встановлення Bluetooth сканера з Windows Phone 8 натисканням на відповідний пункт у списку Bluetooth девайсів смартфона, з'єднання починається і закінчується. Діяти потрібно по-іншому.
З'єднаються c Bluetooth пристроєм з відповідного розділу налаштувань Windows Phone 8 не потрібно. Замість цього слід:
- Запустити програму для роботи зі сканером штрих-коду на Windows Phone 8.
- Вибрати в додатку Bluetooth пристрій з яким раніше вже було вироблено «спаровування». У моєму випадку KDC200.
- На Bluetooth сканері штрих-коду натиснути кнопку з'єднання. У випадку з KDC 200 вона на корпусі зліва зверху.
- Після цього Bluetooth пристрій радісно повідомить, що з'єднання успішно встановлено.
- З'єднання буде підтримуватися до тих пір, поки не буде примусово розірвано програмно, або при закритті Windows Phone додатки.
Підготовка Windows Phone 8 додатка для роботи з Bluetooth пристроєм
Після створення Windows Phone додатки необхідно зайти в Properties проекту, відкрити WMAppManfest.xml і переконатися, що прапори біля ID_CAP_PROXIMITY і ID_CAP_NETWORKING виставлені. В іншому випадку при виконанні PeerFinder.Start () буде видано повідомлення про помилку відсутності доступу: «Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) ».
Приклад коду для Windows Phone 8 додається.