Сделайте снимок экрана с помощью ADB и получите его в Java БЕЗ записи файла.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сделайте снимок экрана с помощью ADB и получите его в Java БЕЗ записи файла.

Сообщение Anonymous »

Я знаю, что можно сделать снимок экрана с устройства Android через ADB с помощью

Код: Выделить всё

$ adb shell screencap -p /mnt/sdcard/sc.png
$ adb pull /mnt/sdcard/sc.png
Однако при этом файл будет записан на ваш телефон и на ваш компьютер, чего я хочу избежать.

Итак, Я нашел следующий вопрос SO, и ответ показал, что изображение печатается на выходе Std, если вы не указываете файл.
Я тестировал это с консоли, и оно действительно выводило на консоль двоичные данные.

Android: есть ли способ прочитать скриншот из памяти без сохранения во внутреннюю/внешнюю память?

Теперь я хочу использовать эту технику и запустите процесс из Java, выполните

Код: Выделить всё

adb shell screencap
команду, прочитайте выходные данные и создайте из них BufferedImage.

Я попробовал что-то вроде это

Код: Выделить всё

ProcessBuilder pb = new ProcessBuilder("cmd");
Process start = pb.start();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream));
bw.write("adb shell screencap");
bw.newLine();
bw.flush();
// wait some time for the process to print the image to the console
start.waitFor(10, TimeUnit.SECONDS);
StringBuilder sb = new StringBuilder(9000000);
Scanner s = new Scanner(start.getInputStream());
while (s.hasNext()) {
sb.append(s.next());
}
String result = sb.toString();
К сожалению, с моим кодом довольно много проблем.
  • программа не завершается после получения скриншота - поэтому start.waitFor работает не совсем так, как я хотел
  • сейчас мой код читает символы, где я действительно хочу читать байты
  • чтение с помощью сканера кажется медленным при чтении миллионов символов/байт
Может быть, кто-нибудь подскажет мне направление, в котором я смогу заставить это работать.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/451 ... ing-a-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»