Submit Search
Upload
Android iOS BLE 20180823
•
0 likes
•
2,207 views
T
Tsuyoshi Hyuga
Follow
Android/iOS端末間でデータを送る。BLEで
Read less
Read more
Devices & Hardware
Report
Share
Report
Share
1 of 15
Download now
Download to read offline
Recommended
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDK
Shu-Jeng Hsieh
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Amazon Web Services
MicroCPH - Managing data consistency in a microservice architecture using Sagas
MicroCPH - Managing data consistency in a microservice architecture using Sagas
Chris Richardson
Governança de TI
Governança de TI
Jose Ignacio Jaeger Neto, PMP, MSc
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
Solace
Segurança Eletrônica
Segurança Eletrônica
Danilo Pires
(2008) 스팸스나이퍼 제품소개서
(2008) 스팸스나이퍼 제품소개서
두식 윤
Microservice architecture design principles
Microservice architecture design principles
Sanjoy Kumar Roy
Recommended
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDK
Shu-Jeng Hsieh
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Amazon Web Services
MicroCPH - Managing data consistency in a microservice architecture using Sagas
MicroCPH - Managing data consistency in a microservice architecture using Sagas
Chris Richardson
Governança de TI
Governança de TI
Jose Ignacio Jaeger Neto, PMP, MSc
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
Solace
Segurança Eletrônica
Segurança Eletrônica
Danilo Pires
(2008) 스팸스나이퍼 제품소개서
(2008) 스팸스나이퍼 제품소개서
두식 윤
Microservice architecture design principles
Microservice architecture design principles
Sanjoy Kumar Roy
Event-driven Architecture
Event-driven Architecture
Centric Consulting
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
WSO2
Back to [Jaspersoft] basics: visualize.js 101
Back to [Jaspersoft] basics: visualize.js 101
TIBCO Jaspersoft
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
Adriano Tavares
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
Ben Wilcock
Why Microservices
Why Microservices
Amazon Web Services
あなたの ”Cloud” も ”One” ダフル!トレンドマイクロの新セキュリティ!
あなたの ”Cloud” も ”One” ダフル!トレンドマイクロの新セキュリティ!
Kwiil Kang
Visual Analytics Best Practices
Visual Analytics Best Practices
Tableau Software
Requisitos de Qualidade de Usabilidade
Requisitos de Qualidade de Usabilidade
Roberto Paldês
Monoliths, Migrations, and Microservices
Monoliths, Migrations, and Microservices
Randy Shoup
SIPOC
SIPOC
CLT Valuebased Services
Engenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia Software
elliando dias
Modern Enterprise integration Strategies
Modern Enterprise integration Strategies
Jesus Rodriguez
Deep Dive - Amazon Kinesis Video Streams - AWS Online Tech Talks
Deep Dive - Amazon Kinesis Video Streams - AWS Online Tech Talks
Amazon Web Services
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
Rajkattamuri
PART 1: Intro To JasperReports IO And How To Build Your First Report
PART 1: Intro To JasperReports IO And How To Build Your First Report
TIBCO Jaspersoft
Power BI : A Detailed Discussion
Power BI : A Detailed Discussion
SwatiTripathi44
Music on cloud
Music on cloud
Akhila Mohan
Catálogo de serviços ITIL template
Catálogo de serviços ITIL template
Fernando Palma
Ifw framework for banking industry presentation
Ifw framework for banking industry presentation
Ravi Sarkar
More Related Content
What's hot
Event-driven Architecture
Event-driven Architecture
Centric Consulting
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
WSO2
Back to [Jaspersoft] basics: visualize.js 101
Back to [Jaspersoft] basics: visualize.js 101
TIBCO Jaspersoft
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
Adriano Tavares
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
Ben Wilcock
Why Microservices
Why Microservices
Amazon Web Services
あなたの ”Cloud” も ”One” ダフル!トレンドマイクロの新セキュリティ!
あなたの ”Cloud” も ”One” ダフル!トレンドマイクロの新セキュリティ!
Kwiil Kang
Visual Analytics Best Practices
Visual Analytics Best Practices
Tableau Software
Requisitos de Qualidade de Usabilidade
Requisitos de Qualidade de Usabilidade
Roberto Paldês
Monoliths, Migrations, and Microservices
Monoliths, Migrations, and Microservices
Randy Shoup
SIPOC
SIPOC
CLT Valuebased Services
Engenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia Software
elliando dias
Modern Enterprise integration Strategies
Modern Enterprise integration Strategies
Jesus Rodriguez
Deep Dive - Amazon Kinesis Video Streams - AWS Online Tech Talks
Deep Dive - Amazon Kinesis Video Streams - AWS Online Tech Talks
Amazon Web Services
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
Rajkattamuri
PART 1: Intro To JasperReports IO And How To Build Your First Report
PART 1: Intro To JasperReports IO And How To Build Your First Report
TIBCO Jaspersoft
Power BI : A Detailed Discussion
Power BI : A Detailed Discussion
SwatiTripathi44
Music on cloud
Music on cloud
Akhila Mohan
Catálogo de serviços ITIL template
Catálogo de serviços ITIL template
Fernando Palma
Ifw framework for banking industry presentation
Ifw framework for banking industry presentation
Ravi Sarkar
What's hot
(20)
Event-driven Architecture
Event-driven Architecture
Service-Oriented Architecture (SOA)
Service-Oriented Architecture (SOA)
Back to [Jaspersoft] basics: visualize.js 101
Back to [Jaspersoft] basics: visualize.js 101
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
Microservice Architecture with CQRS and Event Sourcing
Microservice Architecture with CQRS and Event Sourcing
Why Microservices
Why Microservices
あなたの ”Cloud” も ”One” ダフル!トレンドマイクロの新セキュリティ!
あなたの ”Cloud” も ”One” ダフル!トレンドマイクロの新セキュリティ!
Visual Analytics Best Practices
Visual Analytics Best Practices
Requisitos de Qualidade de Usabilidade
Requisitos de Qualidade de Usabilidade
Monoliths, Migrations, and Microservices
Monoliths, Migrations, and Microservices
SIPOC
SIPOC
Engenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia Software
Modern Enterprise integration Strategies
Modern Enterprise integration Strategies
Deep Dive - Amazon Kinesis Video Streams - AWS Online Tech Talks
Deep Dive - Amazon Kinesis Video Streams - AWS Online Tech Talks
WebServices SOAP WSDL and UDDI
WebServices SOAP WSDL and UDDI
PART 1: Intro To JasperReports IO And How To Build Your First Report
PART 1: Intro To JasperReports IO And How To Build Your First Report
Power BI : A Detailed Discussion
Power BI : A Detailed Discussion
Music on cloud
Music on cloud
Catálogo de serviços ITIL template
Catálogo de serviços ITIL template
Ifw framework for banking industry presentation
Ifw framework for banking industry presentation
Android iOS BLE 20180823
1.
Android/iOS端末間で データを送る。BLEで 2018/08/23 日向強
2.
自己紹介 • 日向強(tsuyoshi hyuga) •
@coffeegyunyu • iPhone OS 2.2 • Android Donut • Titanium • 株式会社アールラーニングに て主にiPhone、Androidの受 託開発を担当
3.
BLEでデータ送信 • BLEでは大きなデータの送信はできないので、データを分 割して連続送信する必要がある • データの分割数を増やすとその分送信リクエスト数が増え、 データを完全に送信するまで時間がかかる •
Maximum Transmission Unit(MTU)を調整すること で、送信速度の最適化をはかる
4.
基本的な流れ • 端末同士の接続 • 一度に送れるデータの量を拡張する(Exchange
MTU Request) • 接続した端末からデータ送信サービスを発見する • データを適切なサイズに分割し、連続送信する • あくまで端末間データ送信の一例です
5.
Android(Central)→iOS(Peripheral)
6.
7.
Android(Central)→iOS(Peripheral) • requestMtuで、MTU(一回の転送量)をPeripheralに要求することが可能 •BluetoothGatt.requestMtu(517)で要求するのが今の所最適値 • iOS側はこれをハンドリングする手段は無し •
Android側はBluetoothGattCallback.onMtuChanged()でMTU値が取得 できるので、(MTU値-5)でデータ分割して書き込みを繰り返す
8.
iOS(Central)→Android(Peripheral)
9.
10.
iOS(Central)→Android(Peripheral) • iOSは接続後、自動でMTU変更要求を行う(コントロールできない) •MTU変更要求時の値は、iOSバージョンやデバイスで異なる •Peripheral側はCentral側のMTUを把握しておくことが必要(あとで使 います) • Androidの場合、BluetoothGattServerCallback.onMtuChanged()で Central側のMTU値が取得可能
11.
iOS(Central)→Android(Peripheral) •iOS側は、Peripheral側にMTU値の読み込み要求を行う • AndroidがPeripheralの場合、 BluetoothGattServerCallback.onMtuChanged()で取得したMTU値を BluetoothGattServer.sendResponse()で送信する • iOS(Central)→iOS(Peripheral)であれば、 CBPeripheralManagerDelegate.didReceiveRead()の時に CBATTRequest.central.maximumUpdateValueLengthを返す
12.
iOS(Central)→Android(Peripheral) • データ分割は、 min(peripheral.maximumWriteValueLength,MTU値)-5で 分割して、送信を繰り返す 自分と相手のMTUを比較して、低い方でデータ送信を行う
13.
Q&A(Android編) • なぜMTUの値を517に指定するのか →おそらく端末ごとに最適なMTUは異なるが、現状、 APIでMTUの最適な値が取れないので517に決め打ち Nexus5(2013)で動作するので問題ないんじゃないかと 端末の最適なMTUを取得する方法をお持ちの方は教えて ください
14.
Q&A(iOS編) • なぜ、MTUをreadValue()で読み込みに行くのか →自分自身のMTU値が現状のAPIでは取得できないため 自身がCentral時に、Peripheral側のMTUを取得すること 自身がPeripheral時に、Central側のMTUを取得すること は可能 端末の最適なMTUを取得する方法をお持ちの方は教えて ください
15.
まとめ •端末の最適なMTUを取得する方法を お持ちの方は教えてください
Download now