rentgendroid/android/code/screenshot.mjs
2025-09-29 16:32:27 +02:00

31 lines
881 B
JavaScript

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;
}