SlideShare ist ein Scribd-Unternehmen logo
1 von 39
LG G2

1
LG Developer Program
• What does LG Developer do for developers?
• LG’s New Developer Program
LG Developer Program
• LG Developer accelerates
the development and delivery
of great 3rd party applications
on LG smart devices.

’15

’14

’13, Aug

’12, Sep
G2

’11, Nov
’11, Apr

G Pad 8.3

Optimus 3D Cube

’10, Aug

’09, Jun

Optimus 3D

’08, Oct

3
LG’s New Developer Program
Are you creating an app for LG smart devices?
But don’t have a device to test your app on?
Borrow an LG smart device through the LG Device Loaner Program!

November
4th,

2013

4
LG Device Loaner Program
How to borrow an LG Device
Registration
Register as a member
of the LG Device
Loaner Program.

Order

Receive

Click Order and submit
your order form.

Receive the LG device
and test your app on it.

Return
Return the LG device
to us within the loan
period.

Order form

Security
deposit

Test your app on
LG devices

Pack the device
and return

5
LG Device Loaner Program
Available Devices

• G2 Verizon (VS980)
• G2 AT&T (D800)
• Optimus G Pro AT&T (E980)
• Optimus L9 T-Mobile (P769)
• ENACT Verizon (VS890)

6
LG Device Loaner Program
For more information

• http://developer.lge.com

One-stop resource for all developer requirements for LG smart
devices

7
QuickRemote
• App Intro
LG Quick Series UX
QuickRemote

QuickMemo

QSlide

QuickTranslator

üRecognition for 43
languages and translate to
64 languages with Camera.

Qvoice(voicemate)
üYou can control TV,
Cable box, Airconditioner and so on

üYou can Memo and
scrap through Quick
button every screen.
ex) During calling, you
can Memo with Qmemo

üInnovative
Multitasking for
Multiscreen and
Multiaction.
Ex) During Videos, you
can see DMB or Memo.

üYou can check Dictionary,
Searching, Schedule, calling
with voice.

9
Why use LG QuickRemote?
At home, you have remote control for your TV, air conditioner, stereo and
fan.. but they are not always there when you need them, are they?

- QuickRemote features
- QRemote SDK
Learning

- Feedback from You
• throughout
• networking
• forum http://developer.lge.com/

Control home electronics from TV to air conditioner,
all with QuickRemote
10
QuickRemote: What do?
http://g2-event.lgmobile.com/

QuickRemote
Control various
home electronics

11
QuickRemote: Why quick?
• Auto display at home
• Noti-bar and Lockscreen widgets

Knows when you are at home

12
QuickRemote: Rich functionality

Enjoy diversity of
devices.

Adjust devices to
your personal space.

Multiple devices

Space profile

Learning function

Magic remote

Control from the
bottom of your heart.

Control smart
content.

13
QuickRemote: TV/Cable-box features
Simple control

Macro button

Favorite channels

14
QuickRemote: Setup flow

15
LG QRemote SDK
• Overview
• Sample App & API
• Developer tips
• Supporting devices
• LG Developer site
• Suggestions for SDK use cases
What can we do with LG QRemote SDK?
Realize your Brilliant apps!
• Customized UX design
• Adding new features
• Imagine you can do like this:

from
Template

Review Articles of QuickRemote

17
Overview of LG QRemote SDK
Content Provider

LG
QuickRemote

3rd Party App

Device
ID

Device
info

QRemote APIs

LG
QRemote SDK

IR
Element

IR
Blaster

IR Services
Control Service
* 3rd party app can
access to

Setup Service

* accessible only through
QuickRemote

18
Sample App & Major APIs

Sample App UI

Major APIs

Device List
Function List

Adding device. Result: Success
LG à TV à Power On à Success

Log TextView

Add/Delete a Device

19
Sample App & Major APIs

Sample App UI

Major APIs

class IRBlaster

Interface IRBlasterCallback

getIRBlaster()

IRBlasterReady()

getDevices()

newDeviceId()

Device List
Function List

addDevices()
sendIR()
stopIR()
Adding device. Result: Success
LG à TV à Power On à Success

close() TextView
Log

Refer to LG QRemote API Reference at http://developer.lge.com

20
Basic workflow
Application

• Creating a IRBlaster instance
and binding IR Service:
getIRBlaster()
• Getting the Device information:
getDevices()

IRBlaster
Class

getIRBlaster()

IR Services

bindService()

IRBlasterReady()

getDevices()
[list of devices]

• Select a device and show a
corresponding layout

[list of devices]

[select device]

• Handling supported functions by a
selected Device

IControl.getDevice()

[match functions]*
sendIR()

• Sending the IRSignals:
sendIR()
• Unbinding IR Service:
close()

[result]

IControl.sendIR()
[lresult]

close()
unbindService()

* IRFunctionLabels in Revision 2

21
Match functions
• Every device and brand may have different set of functions
• Fake function Names: ex. Air-conditioner

Real behavior:
Temperature UP

Raw function names:
Skip Forward

IRFunctionLabels in Revision 2
public
public
public
public
public
public
public

static
static
static
static
static
static
static

final
final
final
final
final
final
final

String
String
String
String
String
String
String

IR_FUNCTION_LABEL_TEMP_UP_AIRCON = "SKIP FORWARD";
IR_FUNCTION_LABEL_TEMP_DOWN_AIRCON = "SKIP REVERSE";
IR_FUNCTION_LABEL_FAN_AIRCON = "BLUE";
IR_FUNCTION_LABEL_FAN_UP_AIRCON = "PAGE -";
IR_FUNCTION_LABEL_FAN_DOWN_AIRCON = "FAVORITE";
IR_FUNCTION_LABEL_HORIZONTAL_SWING_AIRCON = "PIP INPUT";
IR_FUNCTION_LABEL_VERTICAL_SWING_AIRCON = "PIP ON";

VS
22
Match functions
• Every device and brand may have different set of functions
• Fake function Names: ex. Air-conditioner

IRBlaster
Class

Application
Buttons[i].Name ==
KeyFunctions[j].Name

getDevices()
[list of devices]

Buttons[]

View.setTag()

[select Device]

Buttons[i].Id =
KeyFunctions[j].Id

[match functions]
Device
+Id: int
+KeyFunctions: list
0..1
KeyFunctions
0..*

getFunctionKeyCode()

public class IRFunctionLabels {
public static final String IR_FUNCTION_LABEL_VOLUME_DOWN_TV = "VOLUME -";
public static final String IR_FUNCTION_LABEL_MUTE_TV = "MUTE";
…
public static final String IR_FUNCTION_LABEL_POWER_TV = "POWER";
public static final String IR_FUNCTION_LABEL_POWER_ON_TV = "POWER ON";

IRFunction
+Name: String
+Id: int

sendIR(…)
[result]
23
Add device
• Add device through QuickRemote
and receive a notification through
the registered callback:
newDevice()
• Handle relevant devices

getIRBlaster(..)

IRBlasterCallback

+IRBlasterReady()
+newDeviceId(int Id)

public IRBlasterCallback mIrBlasterReadyCallback
= new IRBlasterCallback() {
@Override
public void IRBlasterReady() {
final Runnable r = new Runnable() {
public void run() {
getDevices();
}
};
mHandler.post(r);
mIR_ready = true;
}
@Override
public void newDeviceId(int id) {
Toast.makeText(…).show();
}
};

IRBlaster
Class

Application

IRBlasterReady()

addDevice()

newDevice(Id)
[store Id]

24
Error handling
retry

• public static final int SUCCESS = 0; retry or warn
• public static final int ERROR = 1;
• public static final int SERVICES_NOT_READY = 9;

if (resultCode ==
ResultCode.SERVICES_NOT_READY) {
if (mRetries < MAXRETRIES /*3*/) {
// wait for services ready
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
retries++;
getIRBlaster();
} else {
retries = 0;
showFatalError();
}
}

• public static final int OUT_OF_MEMORY = 7;
• public static final int ERROR_OPENING_DATABASE = 11;

clean RAM/ROM

ask a user to delete
• public static final int MAXIMUM_DEVICES_REACHED = 8; devices
warn: can’t delete
• public static final int INVALID_AUTHENTICATION_KEY = 10; this device

• public static final int DELETE_DEVICE_ERROR = 17;
25
Developer tips
• Wait IRBlasterCallback.IRBlasterReady()
• sendIR with 0 (continuous) or >250ms (~300ms) duration
• Always call stopIR after sendIR with 0 duration
• sendIR/stopIR in Handler
• Handle multi-touch android:splitMotionEvents="false"
• Portrait mode android:screenOrientation="portrait“
• Maximum devices allowed 96 (including 24 of QuickRemote)

26
Supporting Devices

To be added...
27
Introduction

LG DEVELOPER SITE

28
LG Developer Web Site
• One-stop resource for all developer requirements for LG smart
devices

• http://developer.lge.com

29
SDK use cases

OPPORTUNITIES

30
Open APIs sample
• Make a difference using open APIs which provide useful information.

What
song is it?

Useful
info from
web
What
programs
on TV?

Open APIs

• Macros
- One click, more actions
- Call sendIRList()
- Create your own macros!

Eject tray
TV on
DVD on
31
Hybrid app sample
• Reach web technologies + powerful phone features
- Web UI can use LG QRemote APIs through Apache Cordova plugin

• Development
- Develop a web application with cordova.js
- Call cordova.exec() to fetch QRemote APIs (If plugin is already ready)
- Import the web application files into an Android application
- Run the Android application on a LG phone

32
Widget sample
<receiver android:name=

AndroidManifest.xml

"com.lge.example.sdkwidgettest.RemoteAppWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<intent-filter>
<action
android:name="com.lge.example.sdkwidgettest.remote_widget_button_click"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/remote_appwidget_info"/>
</receiver>

remote_appwidget_info.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="360dp"
Widget can be added in
android:minHeight="110dp"
android:updatePeriodMillis="0"
Keyguard or Home screen
android:previewImage="@drawable/widget_preview"

android:widgetCategory="keyguard"
android:configure="com.lge.qremote.appwidget.RemoteAppWidgetDummyActivity"
android:initialLayout="@layout/lockscreen_remocon_loading" >
</appwidget-provider>

RemoteAppWidgetProvider.java

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
RemoteViews views = new RemoteViews(context.getPackageName(),

Widget main layout xml file

R.layout.widget_main);
Intent powerClickIntent = new Intent(WidgetApplication.BUTTON_CLICK);
powerClickIntent.putExtra(BUTTON_TYPE, POWER);
...
}

33
Partner’s use case

34
Suggestions for SDK use cases
• Flexible UI (learn user behaviors)

• Integrates SNS

• Use full range of functions

• Auto detection (camera)

• Voice commands

• Context aware apps
– (geo-location): get local
favorite channels
– activity: adjust environment

– auto-launch device specific layout

35
Going further
• SDK revision 2
• Improvements
Fixes: Revision 2
• Add function label (IRFunctionLabels class)
• Clean up unused API
• Improve API description

37
Improvements
• Quick setup

• Learned functions
• Export Content Provider

• Hybrid app development guide
38
LG Developer Event 2013 in San Francisco

Weitere ähnliche Inhalte

Was ist angesagt?

Android Things - The IoT platform from Google
Android Things - The IoT platform from GoogleAndroid Things - The IoT platform from Google
Android Things - The IoT platform from GoogleEmmanuel Obot
 
Android Open Accessory Protocol - Turn Your Linux machine as ADK
Android Open Accessory Protocol - Turn Your Linux machine as ADKAndroid Open Accessory Protocol - Turn Your Linux machine as ADK
Android Open Accessory Protocol - Turn Your Linux machine as ADKRajesh Sola
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingBitbar
 
Going Beyond the Device Heart Beat
Going Beyond the Device Heart BeatGoing Beyond the Device Heart Beat
Going Beyond the Device Heart BeatBalwinder Kaur
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoTBartosz Kosarzycki
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentationBitbar
 
Best Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App TestingBest Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App TestingBitbar
 
Automate Mobile App Testing—Or Go Crazy
Automate Mobile App Testing—Or Go CrazyAutomate Mobile App Testing—Or Go Crazy
Automate Mobile App Testing—Or Go CrazyTechWell
 
Introductory webinar on iRidium
Introductory webinar on iRidiumIntroductory webinar on iRidium
Introductory webinar on iRidiumiRidiumMobile365
 
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud Applitools
 
How to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App TestingHow to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App TestingBitbar
 
Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?Bitbar
 
Android Things Linux Day 2017
Android Things Linux Day 2017 Android Things Linux Day 2017
Android Things Linux Day 2017 Stefano Sanna
 
Android Open Accessory APIs
Android Open Accessory APIsAndroid Open Accessory APIs
Android Open Accessory APIsPearl Chen
 
My 10 Mobile Automation Questions
My 10 Mobile Automation QuestionsMy 10 Mobile Automation Questions
My 10 Mobile Automation QuestionsRan Byron
 
Android 5.0 Camera2 APIs
Android 5.0 Camera2 APIsAndroid 5.0 Camera2 APIs
Android 5.0 Camera2 APIsBalwinder Kaur
 

Was ist angesagt? (18)

Android Things - The IoT platform from Google
Android Things - The IoT platform from GoogleAndroid Things - The IoT platform from Google
Android Things - The IoT platform from Google
 
Android Open Accessory Protocol - Turn Your Linux machine as ADK
Android Open Accessory Protocol - Turn Your Linux machine as ADKAndroid Open Accessory Protocol - Turn Your Linux machine as ADK
Android Open Accessory Protocol - Turn Your Linux machine as ADK
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and Testing
 
Going Beyond the Device Heart Beat
Going Beyond the Device Heart BeatGoing Beyond the Device Heart Beat
Going Beyond the Device Heart Beat
 
Android things introduction - Development for IoT
Android things introduction - Development for IoTAndroid things introduction - Development for IoT
Android things introduction - Development for IoT
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentation
 
Best Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App TestingBest Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App Testing
 
Automate Mobile App Testing—Or Go Crazy
Automate Mobile App Testing—Or Go CrazyAutomate Mobile App Testing—Or Go Crazy
Automate Mobile App Testing—Or Go Crazy
 
Introductory webinar on iRidium
Introductory webinar on iRidiumIntroductory webinar on iRidium
Introductory webinar on iRidium
 
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
Testdroid: Release Perfect Apps with Mobile Visual Testing in the Cloud
 
How to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App TestingHow to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App Testing
 
Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?
 
Android Things Linux Day 2017
Android Things Linux Day 2017 Android Things Linux Day 2017
Android Things Linux Day 2017
 
Android Open Accessory APIs
Android Open Accessory APIsAndroid Open Accessory APIs
Android Open Accessory APIs
 
Hacktime for adk
Hacktime for adkHacktime for adk
Hacktime for adk
 
Android Things
Android ThingsAndroid Things
Android Things
 
My 10 Mobile Automation Questions
My 10 Mobile Automation QuestionsMy 10 Mobile Automation Questions
My 10 Mobile Automation Questions
 
Android 5.0 Camera2 APIs
Android 5.0 Camera2 APIsAndroid 5.0 Camera2 APIs
Android 5.0 Camera2 APIs
 

Ähnlich wie LG Developer Event 2013 in San Francisco

Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldStefano Sanna
 
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...Codemotion
 
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Codemotion
 
EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
EDK_II_SW_debugger_v0.1_lj-Plugfest.pdfEDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
EDK_II_SW_debugger_v0.1_lj-Plugfest.pdfRajeshravi49
 
Being Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentBeing Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentReto Meier
 
Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.UA Mobile
 
Android introduction and rooting technology
Android introduction and rooting technologyAndroid introduction and rooting technology
Android introduction and rooting technologyGagandeep Nanda
 
Smart homes using android
Smart homes using androidSmart homes using android
Smart homes using androidDroidcon Berlin
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Aleksander Piotrowski
 
DEFCON 18- These Aren't the Permissions You're Looking For
DEFCON 18- These Aren't the Permissions You're Looking ForDEFCON 18- These Aren't the Permissions You're Looking For
DEFCON 18- These Aren't the Permissions You're Looking ForMichael Scovetta
 
[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...
[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...
[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...Hackito Ergo Sum
 
Google IO 2014 overview
Google IO 2014 overviewGoogle IO 2014 overview
Google IO 2014 overviewBin Yang
 
Nishant_Automation Engineer-CV
Nishant_Automation Engineer-CVNishant_Automation Engineer-CV
Nishant_Automation Engineer-CVNishant Shah
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IOpersys inc.
 
Intro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabIntro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabLizzy Guido (she/her)
 
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArtAndroid Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArtAlina Vilk
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011sullis
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
[University] Capstone Design Project 2 (SAIOT)
[University] Capstone Design Project 2 (SAIOT)[University] Capstone Design Project 2 (SAIOT)
[University] Capstone Design Project 2 (SAIOT)창엽 양
 

Ähnlich wie LG Developer Event 2013 in San Francisco (20)

Android ch2..pptx
Android ch2..pptxAndroid ch2..pptx
Android ch2..pptx
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical world
 
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
 
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
 
EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
EDK_II_SW_debugger_v0.1_lj-Plugfest.pdfEDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
 
Being Epic: Best Practices for Android Development
Being Epic: Best Practices for Android DevelopmentBeing Epic: Best Practices for Android Development
Being Epic: Best Practices for Android Development
 
Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.
 
Android introduction and rooting technology
Android introduction and rooting technologyAndroid introduction and rooting technology
Android introduction and rooting technology
 
Smart homes using android
Smart homes using androidSmart homes using android
Smart homes using android
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015
 
DEFCON 18- These Aren't the Permissions You're Looking For
DEFCON 18- These Aren't the Permissions You're Looking ForDEFCON 18- These Aren't the Permissions You're Looking For
DEFCON 18- These Aren't the Permissions You're Looking For
 
[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...
[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...
[HES2013] Hacking apple accessories to pown iDevices – Wake up Neo! Your phon...
 
Google IO 2014 overview
Google IO 2014 overviewGoogle IO 2014 overview
Google IO 2014 overview
 
Nishant_Automation Engineer-CV
Nishant_Automation Engineer-CVNishant_Automation Engineer-CV
Nishant_Automation Engineer-CV
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part I
 
Intro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ LabIntro to Automation Using Perfecto's CQ Lab
Intro to Automation Using Perfecto's CQ Lab
 
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArtAndroid Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
 
Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011Android 3.1 - Portland Code Camp 2011
Android 3.1 - Portland Code Camp 2011
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
[University] Capstone Design Project 2 (SAIOT)
[University] Capstone Design Project 2 (SAIOT)[University] Capstone Design Project 2 (SAIOT)
[University] Capstone Design Project 2 (SAIOT)
 

Kürzlich hochgeladen

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Kürzlich hochgeladen (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

LG Developer Event 2013 in San Francisco

  • 2. LG Developer Program • What does LG Developer do for developers? • LG’s New Developer Program
  • 3. LG Developer Program • LG Developer accelerates the development and delivery of great 3rd party applications on LG smart devices. ’15 ’14 ’13, Aug ’12, Sep G2 ’11, Nov ’11, Apr G Pad 8.3 Optimus 3D Cube ’10, Aug ’09, Jun Optimus 3D ’08, Oct 3
  • 4. LG’s New Developer Program Are you creating an app for LG smart devices? But don’t have a device to test your app on? Borrow an LG smart device through the LG Device Loaner Program! November 4th, 2013 4
  • 5. LG Device Loaner Program How to borrow an LG Device Registration Register as a member of the LG Device Loaner Program. Order Receive Click Order and submit your order form. Receive the LG device and test your app on it. Return Return the LG device to us within the loan period. Order form Security deposit Test your app on LG devices Pack the device and return 5
  • 6. LG Device Loaner Program Available Devices • G2 Verizon (VS980) • G2 AT&T (D800) • Optimus G Pro AT&T (E980) • Optimus L9 T-Mobile (P769) • ENACT Verizon (VS890) 6
  • 7. LG Device Loaner Program For more information • http://developer.lge.com One-stop resource for all developer requirements for LG smart devices 7
  • 9. LG Quick Series UX QuickRemote QuickMemo QSlide QuickTranslator üRecognition for 43 languages and translate to 64 languages with Camera. Qvoice(voicemate) üYou can control TV, Cable box, Airconditioner and so on üYou can Memo and scrap through Quick button every screen. ex) During calling, you can Memo with Qmemo üInnovative Multitasking for Multiscreen and Multiaction. Ex) During Videos, you can see DMB or Memo. üYou can check Dictionary, Searching, Schedule, calling with voice. 9
  • 10. Why use LG QuickRemote? At home, you have remote control for your TV, air conditioner, stereo and fan.. but they are not always there when you need them, are they? - QuickRemote features - QRemote SDK Learning - Feedback from You • throughout • networking • forum http://developer.lge.com/ Control home electronics from TV to air conditioner, all with QuickRemote 10
  • 12. QuickRemote: Why quick? • Auto display at home • Noti-bar and Lockscreen widgets Knows when you are at home 12
  • 13. QuickRemote: Rich functionality Enjoy diversity of devices. Adjust devices to your personal space. Multiple devices Space profile Learning function Magic remote Control from the bottom of your heart. Control smart content. 13
  • 14. QuickRemote: TV/Cable-box features Simple control Macro button Favorite channels 14
  • 16. LG QRemote SDK • Overview • Sample App & API • Developer tips • Supporting devices • LG Developer site • Suggestions for SDK use cases
  • 17. What can we do with LG QRemote SDK? Realize your Brilliant apps! • Customized UX design • Adding new features • Imagine you can do like this: from Template Review Articles of QuickRemote 17
  • 18. Overview of LG QRemote SDK Content Provider LG QuickRemote 3rd Party App Device ID Device info QRemote APIs LG QRemote SDK IR Element IR Blaster IR Services Control Service * 3rd party app can access to Setup Service * accessible only through QuickRemote 18
  • 19. Sample App & Major APIs Sample App UI Major APIs Device List Function List Adding device. Result: Success LG à TV à Power On à Success Log TextView Add/Delete a Device 19
  • 20. Sample App & Major APIs Sample App UI Major APIs class IRBlaster Interface IRBlasterCallback getIRBlaster() IRBlasterReady() getDevices() newDeviceId() Device List Function List addDevices() sendIR() stopIR() Adding device. Result: Success LG à TV à Power On à Success close() TextView Log Refer to LG QRemote API Reference at http://developer.lge.com 20
  • 21. Basic workflow Application • Creating a IRBlaster instance and binding IR Service: getIRBlaster() • Getting the Device information: getDevices() IRBlaster Class getIRBlaster() IR Services bindService() IRBlasterReady() getDevices() [list of devices] • Select a device and show a corresponding layout [list of devices] [select device] • Handling supported functions by a selected Device IControl.getDevice() [match functions]* sendIR() • Sending the IRSignals: sendIR() • Unbinding IR Service: close() [result] IControl.sendIR() [lresult] close() unbindService() * IRFunctionLabels in Revision 2 21
  • 22. Match functions • Every device and brand may have different set of functions • Fake function Names: ex. Air-conditioner Real behavior: Temperature UP Raw function names: Skip Forward IRFunctionLabels in Revision 2 public public public public public public public static static static static static static static final final final final final final final String String String String String String String IR_FUNCTION_LABEL_TEMP_UP_AIRCON = "SKIP FORWARD"; IR_FUNCTION_LABEL_TEMP_DOWN_AIRCON = "SKIP REVERSE"; IR_FUNCTION_LABEL_FAN_AIRCON = "BLUE"; IR_FUNCTION_LABEL_FAN_UP_AIRCON = "PAGE -"; IR_FUNCTION_LABEL_FAN_DOWN_AIRCON = "FAVORITE"; IR_FUNCTION_LABEL_HORIZONTAL_SWING_AIRCON = "PIP INPUT"; IR_FUNCTION_LABEL_VERTICAL_SWING_AIRCON = "PIP ON"; VS 22
  • 23. Match functions • Every device and brand may have different set of functions • Fake function Names: ex. Air-conditioner IRBlaster Class Application Buttons[i].Name == KeyFunctions[j].Name getDevices() [list of devices] Buttons[] View.setTag() [select Device] Buttons[i].Id = KeyFunctions[j].Id [match functions] Device +Id: int +KeyFunctions: list 0..1 KeyFunctions 0..* getFunctionKeyCode() public class IRFunctionLabels { public static final String IR_FUNCTION_LABEL_VOLUME_DOWN_TV = "VOLUME -"; public static final String IR_FUNCTION_LABEL_MUTE_TV = "MUTE"; … public static final String IR_FUNCTION_LABEL_POWER_TV = "POWER"; public static final String IR_FUNCTION_LABEL_POWER_ON_TV = "POWER ON"; IRFunction +Name: String +Id: int sendIR(…) [result] 23
  • 24. Add device • Add device through QuickRemote and receive a notification through the registered callback: newDevice() • Handle relevant devices getIRBlaster(..) IRBlasterCallback +IRBlasterReady() +newDeviceId(int Id) public IRBlasterCallback mIrBlasterReadyCallback = new IRBlasterCallback() { @Override public void IRBlasterReady() { final Runnable r = new Runnable() { public void run() { getDevices(); } }; mHandler.post(r); mIR_ready = true; } @Override public void newDeviceId(int id) { Toast.makeText(…).show(); } }; IRBlaster Class Application IRBlasterReady() addDevice() newDevice(Id) [store Id] 24
  • 25. Error handling retry • public static final int SUCCESS = 0; retry or warn • public static final int ERROR = 1; • public static final int SERVICES_NOT_READY = 9; if (resultCode == ResultCode.SERVICES_NOT_READY) { if (mRetries < MAXRETRIES /*3*/) { // wait for services ready try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } retries++; getIRBlaster(); } else { retries = 0; showFatalError(); } } • public static final int OUT_OF_MEMORY = 7; • public static final int ERROR_OPENING_DATABASE = 11; clean RAM/ROM ask a user to delete • public static final int MAXIMUM_DEVICES_REACHED = 8; devices warn: can’t delete • public static final int INVALID_AUTHENTICATION_KEY = 10; this device • public static final int DELETE_DEVICE_ERROR = 17; 25
  • 26. Developer tips • Wait IRBlasterCallback.IRBlasterReady() • sendIR with 0 (continuous) or >250ms (~300ms) duration • Always call stopIR after sendIR with 0 duration • sendIR/stopIR in Handler • Handle multi-touch android:splitMotionEvents="false" • Portrait mode android:screenOrientation="portrait“ • Maximum devices allowed 96 (including 24 of QuickRemote) 26
  • 29. LG Developer Web Site • One-stop resource for all developer requirements for LG smart devices • http://developer.lge.com 29
  • 31. Open APIs sample • Make a difference using open APIs which provide useful information. What song is it? Useful info from web What programs on TV? Open APIs • Macros - One click, more actions - Call sendIRList() - Create your own macros! Eject tray TV on DVD on 31
  • 32. Hybrid app sample • Reach web technologies + powerful phone features - Web UI can use LG QRemote APIs through Apache Cordova plugin • Development - Develop a web application with cordova.js - Call cordova.exec() to fetch QRemote APIs (If plugin is already ready) - Import the web application files into an Android application - Run the Android application on a LG phone 32
  • 33. Widget sample <receiver android:name= AndroidManifest.xml "com.lge.example.sdkwidgettest.RemoteAppWidgetProvider"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/> </intent-filter> <intent-filter> <action android:name="com.lge.example.sdkwidgettest.remote_widget_button_click"/> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/remote_appwidget_info"/> </receiver> remote_appwidget_info.xml <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="360dp" Widget can be added in android:minHeight="110dp" android:updatePeriodMillis="0" Keyguard or Home screen android:previewImage="@drawable/widget_preview" android:widgetCategory="keyguard" android:configure="com.lge.qremote.appwidget.RemoteAppWidgetDummyActivity" android:initialLayout="@layout/lockscreen_remocon_loading" > </appwidget-provider> RemoteAppWidgetProvider.java @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { RemoteViews views = new RemoteViews(context.getPackageName(), Widget main layout xml file R.layout.widget_main); Intent powerClickIntent = new Intent(WidgetApplication.BUTTON_CLICK); powerClickIntent.putExtra(BUTTON_TYPE, POWER); ... } 33
  • 35. Suggestions for SDK use cases • Flexible UI (learn user behaviors) • Integrates SNS • Use full range of functions • Auto detection (camera) • Voice commands • Context aware apps – (geo-location): get local favorite channels – activity: adjust environment – auto-launch device specific layout 35
  • 36. Going further • SDK revision 2 • Improvements
  • 37. Fixes: Revision 2 • Add function label (IRFunctionLabels class) • Clean up unused API • Improve API description 37
  • 38. Improvements • Quick setup • Learned functions • Export Content Provider • Hybrid app development guide 38