This topic describes how your application can receive input from a remote control.
The remote control is the most common way for users to interact with the device.
Figure 1. Samsung Smart Remote
To use the TVInputDevice API, the application has to request permission by adding the following privilege to the "config.xml" file:
<tizen:privilege name='http://tizen.org/privilege/tv.inputdevice'>
</tizen:privilege>
To detect and handle remote control key clicks:
To retrieve information about the remote control keys that the device supports, use the getSupportedKeys()
method:
var value = tizen.tvinputdevice.getSupportedKeys();
console.log(value);
The method returns the key name and keyCode
value for each supported key.
To register the key, add the registerKey()
method to the onload
event, with the key name as the parameter:
tizen.tvinputdevice.registerKey('MediaPlayPause');
tizen.tvinputdevice.registerKey('ColorF0Red');
Since 2016 models, you can batch register keys using the registerKeyBatch()
method, which can improve application launch time:
tizen.tvinputdevice.registerKeyBatch(['VolumeUp', 'VolumeDown']);
NoteThe "ArrowLeft", "ArrowUp", "ArrowRight", "ArrowDown", "Enter", and "Back" key events are detected automatically, and do not require separate registration.
To receive notifications when a remote control key is clicked, add a listener for the keydown
event:
<body ... onkeydown='handleKeydown(event);'> ... </body>
or
document.body.addEventListener('keydown', handleKeyDown);
For more information on the keydown
event, see the W3C Keyboard Event Types.
Define the listener.
The parameter of the handleKeyDown()
method is the keyCode
value for the clicked key.
function handleKeydown(event) {
switch (event.keyCode) {
case tizen.tvinputdevice.getKey('MediaPlayPause').code: //10252
// Something you want to do
break;
case tizen.tvinputdevice.getKey('ColorF0Red').code: //403
// Something you want to do
break;
...
The following table lists the remote control key names and their corresponding keyCode
values.
Key Name | keyCode | Key Name | keyCode | Key Name | keyCode |
---|---|---|---|---|---|
ArrowLeft | 37 | MediaPlayPause | 10252 | Menu | 18 |
ArrowUp | 38 | MediaRewind | 412 | Tools | 10135 |
ArrowRight | 39 | MediaFastForward | 417 | Info | 457 |
ArrowDown | 40 | MediaPlay | 415 | Source | 10072 |
Enter | 13 | MediaPause | 19 | Exit | 10182 |
Back | 10009 | MediaStop | 413 | ||
MediaRecord | 416 | ||||
VolumeUp | 447 | MediaTrackPrevious | 10232 | ||
VolumeDown | 448 | MediaTrackNext | 10233 | ||
VolumeMute | 449 | PictureSize | 10140 | ||
ChannelUp | 427 | 0 | 48 | ||
ChannelDown | 428 | 1 | 49 | ||
ChannelList | 10073 | 2 | 50 | ||
3 | 51 | ||||
ColorF0Red | 403 | 4 | 52 | ||
ColorF1Green | 404 | 5 | 53 | ||
ColorF2Yellow | 405 | 6 | 54 | ||
ColorF3Blue | 406 | 7 | 55 | ||
8 | 56 | ||||
9 | 57 | ||||
Minus | 189 | ||||
PreviousChannel | 10190 |
[Table 3. Remote control key codes]