LG QRemote SDK Overview
The LG QRemote SDK provides open APIs for implementing functions of LG QRemote. Using the APIs, developers can implement functions that communicate with IR(infrared)-controlled devices.
The LG QRemote SDK consists of the following components:
• Library: Open APIs which provide functions of LG QRemote
• Documentation: API reference documentation (javadoc)
• Samples: Sample application and source codes written using the LG QRemote SDK
Using the LG QRemote APIs, developers do not need to implement functions for sending IR signals or getting information of the devices.
The LG QRemote SDK works on the Android-based LG smartphones.
To run the application using the SDK, the target device is required to meet the following preconditions:
• The device needs to have an IR LED.
• Android API level of the device needs to be 16 or higher.
• LG QRemote must be installed in the device.
Note that having preloaded LG QRemote APK in the device does not mean that the device supports LG QRemote SDK. Check supported devices. The list of supported devices can be found in Supported Devices.
LG QRemote SDK Overview
Functions of the SDK
The LG QRemote SDK supports the following functions:
• Configuring devices through LG QRemote.
• Getting the device list configured by LG QRemote.
• Getting the brand, name, model, and category of configured devices.
• Getting functions supported by configured devices.
• Sending IR signals for processing the functions.
• Sending raw IR data (Android 4.4.2 or higher)
IR signals can be sent once, continuously, or during a given time period. Refer to the API references for detailed information.
• Learning IR data (Android 4.4.2 or higher)
• Creating new devices with learned IR data (Android 4.4.2 or higher)
• Sharing learned IR data (Android 5.0 or higher)
Working principle of the SDK
The following figure shows how the application using the LG QRemote SDK works.
The 3rd party application in the figure is the application created by developers. It communicates with the following modules:
• LG QRemote library: The library includes the LG QRemote APIs.
• LG QRemote: LG QRemote installed in the target device.
• IR Services: The background services. These services are in charge of setting up IR-controlled devices and controlling the IR Blaster of the device.
• IR Blaster: The device driver that emulates an IR remote control.
The LG QRemote APIs which connect to the IR services are responsible for the final communication with IR element which is a diode. The request from the 3rd party application will be transmitted to the IR diode driver through Inter Process Communication API.
The LG QRemote APIs provide easy-to-use high level functions so that developers do not have to care about low-level communication with hardware.
LG QRemote is responsible for configuring new device and storing the configured device list for the 3rd party application. LG QRemote should be called whenever user wants to configure new device. After configuring, LG QRemote stores the information of the configured device in its database. Therefore the 3rd party application does not need to maintain the device list.
As Android applications cannot access other application’s database directly, developers need to handle the configured device list by calling LG QRemote. In this case, the LG QRemote library is used as an interface between 3rd party application and LG QRemote.
Developers can get the control function sets of configured devices and delete a device from the list through LG QRemote. Unlike configuration phase, getting device list, acquiring device information, or deleting device from the list does not show up in the LG QRemote’s screen.
Devices will not be accessible if LG QRemote’s data is removed.
The following devices support the LG QRemote SDK (as well as Android ConsumerIrManager APIs):
- G Flex2 (LGAS995, LG-F510K, LG-F510L, LG-F510S, LG-H950, LG-H955, G-H959, LGLS996, LGUS995)
- G2 (LG-D800, LG-D801, LG-D802, LG-D802T, LG-D802TR, LG-D805, LG-D806, LG-F320K, LG-F320L, LG-F320S, LG-LS980)
- G3 (AS985, LG-AS990, LG-D850, LG-D851, LG-D852, LG-D852G, LG-D855, LG-F400K, LG-F400L, LG-F400S, LGUS990, VS985 4G)
- G3Cat6 (LG-F460K, LG-F460L, LG-F460S)
- G3 A (LG-F410S)
- G3 Screen (LG-F490L)
- G Pro2 (LG-D838, LG-F350K, LG-F350L, LG-F350S)
- G4 (AS986, LG-AS811, LG-AS991, LG-F500K, LG-F500L, LG-F500S, LG-H810, LG-H811, LG-H812, LG-H815, LG-H818, LG-H819, LGLS991, LGUS991, VS986)
- V10 (LG-F600K, LG-F600L, LG-F600S, LG-H900, LG-H900PR, LG-H901, LG-H960, LG-H961AN, LG-H961N, LG-H961S, LG-H962, LG-H968, RS987, VS990)
- All new LG Android smartphones launching from 2016 with IR Blaster and QRemote (or QuickRemote) app
Strings in parentheses are model names. You can get your device's model name from the ro.product.model property. Type and run ‘getprop ro.product.model’ in an ADB shell.
LG Electronics reserves the right to revise the list of supported devices at any time by updating this article.