Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Developer Days Poland - Android Things -...
Search
Rebecca Franks
September 06, 2017
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Google Developer Days Poland - Android Things - The IoT Platform for everyone
Rebecca Franks
September 06, 2017
More Decks by Rebecca Franks
See All by Rebecca Franks
Custom Drawing in Compose - Londroid December 2022
riggaroo
0
300
Android Studio - What's new 2020
riggaroo
0
180
Getting Started with MotionLayout - Async Android 2020
riggaroo
2
2.5k
Mobile Era 2019 - Tips for Building Custom Views on Android with Canvas APIs
riggaroo
2
350
Over ❤️ Kotlin - How we've used Kotlin to build a Mobile Design App
riggaroo
2
7.1k
Tips for Building Custom Views on Android with Canvas APIs
riggaroo
2
800
In a World of Pure Android Animation 🍭🍫
riggaroo
3
780
Building your Personal Brand - IWD Johannesburg 2019
riggaroo
5
370
How to write a great Conference Proposal - Global CFP Day - Johannesburg 2019
riggaroo
4
590
Other Decks in Technology
See All in Technology
検索技術知識0のエンジニアが広告検索システムを内製化して運用するまで
lycorptech_jp
PRO
0
170
CloudWatchから始めるAWS監視
butadora
0
290
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
320
PLaMo 3.0 Primeの事後学習
pfn
PRO
0
200
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
3
1.8k
セキュリティ研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
31
26k
システム監視入門
grimoh
5
760
人依存からAIネイティブの体制へ:バックエンド開発の裏側【SORACOM Discovery 2026】
soracom
PRO
0
130
AI研修(Day2)【MIXI 26新卒技術研修】
mixi_engineers
PRO
2
1.5k
運用を犠牲にせずコストを制御し事業成長を支える B2B SaaS ID管理基盤におけるS3 Tableのログストレージ活用
kaminashi
1
110
Power Automateアップデート情報
miyakemito
0
280
VPCセキュリティ対応の最新事情
nagisa53
2
350
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
400
How STYLIGHT went responsive
nonsquared
100
6.2k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Facilitating Awesome Meetings
lara
57
7k
Paper Plane (Part 1)
katiecoart
PRO
1
9.9k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
880
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Transcript
None
None
extension IoT embedded
powerful intelligent secure
Android SDK Play Services Firebase Android Studio Cloud Platform
No Play Store Deploy OTAs Subset of APIs Custom Hardware
Single Purpose Device
None
None
None
SoM Architecture Google Managed BSP
Android Framework Hardware Libraries Linux Kernel Apps User Drivers
• • • •
None
None
None
None
None
Button GPS PWM Servo RGB LED Strip Temperature Sensor Capacitive
Touch Buttons GPIO PWM I2C SPI UART I2S
None
None
None
None
None
//Automatically added in app level build.gradle compileOnly 'com.google.android.things:androidthings:...'
//Automatically added in AndroidManifest.xml <application ...> <uses-library android:name="com.google.android.things"/> <activity ...>
<!-- Launch activity automatically on boot --> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.IOT_LAUNCHER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> </application>
//Automatically added in AndroidManifest.xml <application ...> <uses-library android:name="com.google.android.things"/> <activity ...>
<!-- Launch activity automatically on boot --> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.IOT_LAUNCHER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> </application>
//Import required dependencies, buttons etc implementation 'com.google.android.things.contrib:driver-button:0.3'
button = new Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW); button.setOnButtonEventListener(new Button.OnButtonEventListener() { @Override public
void onButtonEvent(final Button button, final boolean pressed) { ledGpio.setValue(pressed); } }); // in onDestroy() button.close();
button = new Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW); button.setOnButtonEventListener(new Button.OnButtonEventListener() { @Override public
void onButtonEvent(final Button button, final boolean pressed) { ledGpio.setValue(pressed); } }); // in onDestroy() button.close();
button = new Button("BCM6", Button.LogicState.PRESSED_WHEN_LOW); button.setOnButtonEventListener(new Button.OnButtonEventListener() { @Override public
void onButtonEvent(final Button button, final boolean pressed) { ledGpio.setValue(pressed); } }); // in onDestroy() button.close();
//Get access to the pin PeripheralManagerService service = new PeripheralManagerService();
ledGpio = service.openGpio("BCM21"); ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW); ledGpio.setValue(true); //Close in onDestroy() ledGpio.close();
//Get access to the pin PeripheralManagerService service = new PeripheralManagerService();
ledGpio = service.openGpio("BCM21"); ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW); ledGpio.setValue(true); //Close in onDestroy() ledGpio.close();
//Get access to the pin PeripheralManagerService service = new PeripheralManagerService();
ledGpio = service.openGpio("BCM21"); ledGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW); ledGpio.setValue(true); //Close in onDestroy() ledGpio.close();
None
None
@devunwired
@blundell_apps @ataulm
None
DatabaseReference onlineRef = firebaseDatabase.child(".info/connected"); DatabaseReference isPowerOnRef = firebaseDatabase.child("/online"); onlineRef.addValueEventListener(new ValueEventListener()
{ @Override public void onDataChange(final DataSnapshot dataSnapshot) { if (dataSnapshot.getValue(Boolean.class)) { isPowerOnRef.setValue(true); isPowerOnRef.onDisconnect().setValue(false); } } });
DatabaseReference onlineRef = firebaseDatabase.child(".info/connected"); DatabaseReference isPowerOnRef = firebaseDatabase.child("/online"); onlineRef.addValueEventListener(new ValueEventListener()
{ @Override public void onDataChange(final DataSnapshot dataSnapshot) { if (dataSnapshot.getValue(Boolean.class)) { isPowerOnRef.setValue(true); isPowerOnRef.onDisconnect().setValue(false); } } });
@alvaroviebrantz
None
None
Hands-on with Android Things and Creating Your Own IoT Devices
Renato Mangini, Jonathan Koren
None
goo.gl/1gQ9Uo Give Feedback On This Session