GithubHelp home page GithubHelp logo

react-native-androidtv-remote's Introduction

react-native-androidtv-remote

npm-version npm-total-downloads

This package is a port of the Android TV Remote written by @louis49 to React Native

This package is not already published because it depends on a patched version of react-native-tcp-sockets.

Installation (NOT YET PUBLISHED)

npm install react-native-androidtv-remote

Usage

After first succeeded pairing, you can reuse generated certs with getCertificate() by sending it in constructor options.

let host = "192.168.1.12";
let options = {
    pairing_port : 6467,
    remote_port : 6466,
    service_name: 'com.urcompany.appname',
    systeminfo: {
      manufacturer: 'default-manufacturer',
      model: 'default-model'
      },
      // Mandatory for the connection to work on android and needs patched version of
      // react-native-tcp-socket
      cert: {
        key: null,
        cert: null,
        androidKeyStore: 'AndroidKeyStore',
        certAlias: 'my-remotectl-atv-cert',
        keyAlias: 'my-remotectl-atv',
      }
}

let androidRemote = new AndroidRemote(host, options)

androidRemote.on('secret', () => {
    line.question("Code : ", async (code) => {
        androidRemote.sendCode(code);
    });
});

androidRemote.on('powered', (powered) => {
    console.debug("Powered : " + powered)
});

androidRemote.on('volume', (volume) => {
    console.debug("Volume : " + volume.level + '/' + volume.maximum + " | Muted : " + volume.muted);
});

androidRemote.on('current_app', (current_app) => {
    console.debug("Current App : " + current_app);
});

androidRemote.on('ready', async () => {
    let cert = androidRemote.getCertificate();

    androidRemote.sendKey(RemoteKeyCode.MUTE, RemoteDirection.SHORT)

    androidRemote.sendAppLink("https://www.disneyplus.com");
});

let started = await androidRemote.start();

Events

Event: secret

Emitted when androidtv ask for code.

Event: powered

Emitted when androidtv is powering on/off.

Event: volume

Emitted when androidtv is changing volume/mute.

Event: current_app

Emitted when androidtv is changing current app.

Event: error

Emitted when androidtv has a problem : by example when you send a wrong app_link with sendAppLink(app_link).

Commands

Command: sendCode(code)

  • code : You need to pass the shown code on the TV when asked

Command: sendKey(KeyCode, Direction)

Command : sendAppLink(app_link)

  • app_link : You can find them in some Android apps by seeking 'android:host' in Android-Manifest

Others

License

MIT

react-native-androidtv-remote's People

Contributors

vricosti avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.