import { loadPackageDefinition, credentials } from '@grpc/grpc-js'; import { loadSync } from '@grpc/proto-loader'; let PROTO_PATH = '/opt/android-sdk-linux/emulator/lib/emulator_controller.proto'; let packageDefinition = loadSync( PROTO_PATH, {keepCase: true, longs: String, enums: String, defaults: true, oneofs: true }); let emu_control = loadPackageDefinition(packageDefinition).android.emulation.control; export async function get_screenshot() { let target = 'localhost:8888'; let emu_controller = new emu_control.EmulatorController(target, credentials.createInsecure()); let promise = new Promise((resolve, reject) => { emu_controller.getScreenshot({}, function(err, response) { if (err === null) { resolve (response.image); } else { reject (err); } }); }); return promise; }