Writing Bluetooth Mobile Apps



Similar documents
ECM (ELO-KIT-ECMG2-AND)

CB-OLP425 DEVELOPMENT KIT GETTING STARTED

Introducing BEEKS Proximity Solutions. Developer Kit Gets You Started

Spring Design ScreenShare Service SDK Instructions

BLUETOOTH SMART CABLE REPLACEMENT

Texas Instruments CC2540/41 Bluetooth Low Energy Sample Applications Guide v1.3.1

APPFORUM2014. Helping the developer community build next-generation, multi-platform apps. SCHAUMBURG, ILLINOIS SEPTEMBER 8-10

ATBTLC1000 BluSDK USER GUIDE. Bluetooth Low Energy API: Software Development. Description

BLE113 DEVELOPMENT KIT

Questions from The New SensorTag - IoT Made Easy Webinar

AN4571 Application note

IS187x_BM7x - BLEDK3 v1.01 Release Note

GIMBAL PLATFORM DIGITAL INSIGHTS INTO THE PHYSICAL WORLD

Middleware- Driven Mobile Applications

PM0237 Programming manual

Bluetooth 4.0 Solutions for Apple ios Devices. Bluegiga Technologies

Mobile Solutions in ArcGIS. Justin Fan

AP Automation Solution Roadmap

Overview of Microsoft Enterprise Mobility Suite (EMS) Cloud University

Mobila applikationer och trådlösa nät

QUICK START GUIDE Bluetooth Cordless Hand Scanner (CHS)

QSG108: Blue Gecko Bluetooth Smart Software Quick-Start Guide

Introducing the Adafruit Bluefruit LE Sniffer

Sophos Mobile Control Web service guide

Wednesday, January 15, 14. Secure and Private Service Discovery over Low Energy Bluetooth

Bluetooth Low Energy Client Module Out of Box Setup Guide Version 1.0.0

MiniPOS and BluePad-50 user manual

FAQ OLYMPUS DICTATION SMARTPHONE APPLICATION

Mobile Access Software Blade

Jogat - Business Proposition

Towards an Internet of Things: Android meets NFC. Dipartimento di Scienze dell Informazione Università di Bologna

Presented by: Matt Tinkler CIO B2B Technologies SharePoint 2013 Decision Tree

Final Year Project Interim Report

UG103.14: Application Development Fundamentals: Bluetooth Smart Technology

Developing Mapping Applications with ArcGIS Runtime SDK for Windows Mobile. Jay Chen Justin Colville

Cloud Powered Mobile Apps with Azure

Release Notes. KNOX Premium SDK. Version 2.5

Employee Active Directory Self-Service Quick Setup Guide

EMC E Exam Name: Virtualized Data Center and Cloud Infrastructure Design Specialist

PHP on IBM i: What s New with Zend Server 5 for IBM i

Web UI & Functional Test Automation for Continuous Agile Deliveries

Sending and Receiving Data via Bluetooth with an Android Device

Pulse Oximeter Profile

Creating Meaningful Business Moments. Shamik Sinha 1/28/2016

Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions

Strategies and Best Practices to Implement a Successful Data Loss Prevention Program Sebastian Brenner, CISSP

Auth0 SSO Drives B2B Expansion

Industry Services. Comprehensive technical support anytime and everywhere directly from Siemens. support.industry.siemens.com

Reach 4 million Unity developers

emapp background We are dedicated to enterprise mobility and creating strong long-term partnerships with our customers

Android device with Bluetooth enabled and paired with another Bluetooth device.

Generating leads with Meraki's Systems Manager. Partner Training"

Using AllJoyn with Apache Cordova, Python & Node

Collaborative Open Market to Place Objects at your Service

Write Once, Publish Everywhere. The smart way to develop mobile sites and apps your customers love

Bluetooth Low Energy CC2540 Mini Development Kit User s Guide

Communicating in the Cloud with Lync Online

A networking framework for spontaneous interactions in MANETs

Affdex SDK for Android. Developer Guide For SDK version 1.0

Dealer Lead Track Home Page

Release Notes LS Retail Data Director August 2011

W M U G NL. WMUG Meeting #2 - Deployment MOBILE APPLICATION DEPLOYMENT

Communicating with a Barco projector over network. Technical note

Invoicing Innovation - Taking Accounts Payable to the Next Level

SAFETY INSPECTIONS AND COMPLIANCE JUST GOT EASIER WITH THE i-safe 3.1 MOBILE APP

About me. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

PAN1740 Design Guide

Biba Datasheet. Biba is a mobile collaboration tool that provides:

TUTORIAL FOR INITIALIZING BLUETOOTH COMMUNICATION BETWEEN ANDROID AND ARDUINO

ReSound Control App. Where to get ReSound Control

Mobile App Sensor Documentation (English Version)

How to develop your own app

Design for Success: Designing for the Internet of Things with TiWiConnect

Application of Android Mobile Platform in Remote Medical Monitoring System

DeIC Konference Ib Hansen: Oktober 2015

G-CLOUD FRAMEWORK RM1557-vi 5DRIVE PROFESSIONAL STORAGE (PRO)

Organize Work Information. Resolve Workflow Problems

UG136: Silicon Labs Bluetooth Smart SoC Application Developer's Guide

Basware R&D: Tutustu ja vaikuta Laskuautomaatio

About Us. Technology Solutions & Services Company. Turn Innovative Ideas into Real Products & Software, Efficiently

IT Self Service and BYOD Markku A Suistola

Developing Mobile Device Management for 15 million devices (case study) Rim KHAZHIN

BPM vs. SharePoint: Which is Right for Your Business

Android, Bluetooth and MIAC

Influencing Customer Connection Get more value from your SAP investments. Delivery Call Focus Topic NetWeaver MDM

Unified Windows Device Management in the Enterprise

Bluetooth Low Energy CC2540/41 Mini Development Kit User s Guide

Mobile Device and Application Strategy. Right Technology, Right Design, Right Price

Big Fast Data Hadoop acceleration with Flash. June 2013

Building native mobile apps for Digital Factory

Configuring and Managing a Private Cloud with Enterprise Manager 12c

ios Application Development &

A Single System to Streamline Your Project Based Operation Corecon Technologies, Inc. All rights reserved.

SuperSpeed USB Developers Conference

Building a Simple Mobile optimized Web App/Site Using the jquery Mobile Framework

HTTPS hg clone plugin library SSH hg clone plugin library

OMNICHANNEL INNOVATION

A "Day in the Life" Exceptional Work Experience Joe Baxter IBM Collaboration Solutions. Twitter: joebaxter

FTP-Stream Data Sheet

UC Office for Smart Phone - iphone Edition

Transcription:

Writing Bluetooth Mobile Apps Vincent Gao, Bluetooth SIG, Inc. Bluetooth SIG Proprietary 1

Agenda Bluetooth Smart Ready application development overview Platform support ios Android Windows Phone Cross platform Best practices for Smart Ready apps. Bluetooth SIG Proprietary 2

Typical Bluetooth Application Flow Smart Device (peripheral) Advertises Itself Smart Ready Hub (central) Scans for Advertisements Smart Ready Hub requests a Connection Smart Device accepts Connection request 1 2 3 Discover Explore Interact Bluetooth SIG Proprietary 3

Bluetooth 4.1 GAP--Central: Peripheral GATT--Client : Server LL--Master: Slave Bluetooth SIG Proprietary 4

It s all about data All data are in the attributes. Organized in the profile form Adopted profiles and Custom profiles What s in a profile. Data structure of Profile Service Characteristics UUID as the identifier Bluetooth SIG Proprietary 5

Workflow of a Bluetooth app----central Scan Connect interact. Connect or Advertise? Subscription and Notification. Bandwidth and data type. Understanding GAP. Bluetooth SIG Proprietary 6

Workflow of a Bluetooth Smart app----central Advertising Scanning/Connecting Callback Get services/characteristics' Callback Write to values Callback Sending notifications Callback Bluetooth SIG Proprietary 7

A Checklist from the Central Side Is Bluetooth device available? Is Bluetooth Smart device available? Is the device turned on? Scan and found by UUID? Discover service by UUID? Read/Write value of characteristics? On_Resume Close connection Bluetooth SIG Proprietary 8

Platform Overview version ios Android Windows Phone ios 4 and up 4.4 8.1 BLE roles Central/perip Central Central heral Connection up to 6 no limit no limit Backgroundin Yes Yes Yes g Reconnect Yes Yes Yes Security Connection param Secure/Insecure connection Bluetooth SIG Proprietary 9

ios Support both central and peripheral Backgrounding Publishing and advertising Connection parameter MFi not required Caching What does those mean to the developers. Bluetooth SIG Proprietary 10

ios 7 Scanning/Connecting Get services/characteristics' Write to values (void) (void) getallcharacteristicsfromperipheral:(cbperipheral connectperipheral:(cbperipheral *)peripheral status:(bool)status{ *)p if(status [p writevalue:data == TRUE) forcharacteristic:characteristic { type:cbcharacteristicwritewithoutresponse]; { for (int i=0; i < p.services.count; i++) { CBService activeperipheral *s = [p.services = peripheral; objectatindex:i]; printf("fetching activeperipheral.delegate characteristics for = self; service with UUID : %s\r\n",[self CBUUIDToString:s.UUID]); [CM connectperipheral:activeperipheral options:nil]; } [p discovercharacteristics:nil forservice:s]; } Bluetooth SIG Proprietary 11

Best Practices on ios Core Bluetooth Throughput CBCharacteristicWriteWithoutResponse CONNECTION UPDATE Connectionless Energy efficient Scan Bluetooth SIG Proprietary 12

Demo Application accelerator Application debugging using sniffers. Bluetooth SIG Proprietary 13

Android Starts support Bluetooth Smart Ready since 4.3 Adopted Profiles and custom profiles. Permissions. Time out for most of the operations. Some known issues. Bluetooth SIG Proprietary 14

Android Scanning/Connecting Get services/characteristics' Write to values public boolean connect(final String deviceaddress) { public if (mbluetoothadapter void getsupportedservices() writedatatocharacteristic(final == null { deviceaddress BluetoothGattCharacteristic == null) return false; ch, if(mbluetoothgattservices final byte[] d atowrite)!= { null && mbluetoothgattservices.size() > 0) mdeviceaddress = deviceaddress; mbluetoothgattservices.clear(); if (mbluetoothadapter == null mbluetoothgatt == null ch == null) return; // keep reference to all services in local array: // connect if(mbluetoothgatt from scratch!= null) mbluetoothgattservices = mbluetoothgatt.getservices(); // first // set get it BluetoothDevice locally... object for specified address ch.setvalue(datatowrit muicallback.uiavailableservices(mbluetoothgatt, mbluetoothdevice = ); mbluetoothadapter.getremotedevice(mdeviceaddress); mbluetoothdevice, mbluetoothgattservices); } //... if and (mbluetoothdevice then "commit" changes == to null) the peripheral { mbluetoothgatt.writecharacteristic(ch); // we got wrong address - that device is not available! } return false; } // connect with remote device } mbluetoothgatt = mbluetoothdevice.connectgatt(mparent, false, mblecallback); } return true; Bluetooth SIG Proprietary 15

WinRT and the 8.1 update Unified Windows Device Model Connection limitation Code walk-through Bluetooth SIG Proprietary 16

Cross Platform Solution PhoneGap/Cordova demo Bluetooth SIG Proprietary 17

Best Practices Be energy efficient. Scanning Reconnect Advertising Fast connection Back grounding. Connection parameters App publishing Bluetooth SIG Proprietary 18

Resources on the Portal Knowledge Center White papers Training Videos Development Resources Quick Start Kit Application Accelerator Smart Starter Kit Recorded webinars on development topics Links to SIG tools (PTS, etc.) Forums GATT specifications http://developer.bluetooth.org Bluetooth SIG Proprietary 19

Bluetooth SIG Proprietary and Confidential 20