2014-11-03 5 views
0

На моем Android-телефоне: Как я могу нажать и удерживать клавишу ожидания на правой стороне и кнопку дома одновременно с моим приложением Delphi XE7. То есть получить доступ к этим двум кнопкам, чтобы сделать снимок экрана из моего приложения (в папку с картинками)?Скриншот Android от моего приложения Delphi XE7

+1

Я не совсем уверен, что вы имеете в виду, но если я правильно понимаю, вы хотите, чтобы ваше приложение фактически нажало комбинацию кнопок на устройстве, чтобы имитировать пользователя, снимающего скриншот. Это не похоже на соответствующий подход. Конечно, есть более прямой способ сделать скриншот, даже не думая о кнопках. –

+1

http://stackoverflow.com/q/2661536 –

+0

Согласен с @JerryDodge ... Возможно, вместо того, чтобы обращаться к аппаратным кнопкам (которые могут быть разными на разных устройствах), вместо этого подумайте об этом с этого угла: как я могу скриншоты, что в настоящее время в моем приложении? Google надлежащим образом и показать, что имеет и что не сработало для вас, и отредактируйте свой вопрос ... Поскольку ваш вопрос стоит, вы, вероятно, не получите большую помощь от показанных усилий. – ThisGuy

ответ

3

В уровне API 17 (Jelly Bean MR1) и выше, com.android.uiautomator.core.UiDevice класс Android имеет два takeScreenshot() методы:

общественное булево takeScreenshot (storePath File)

сделать снимок текущего окна и сохранить его как используется PNG по умолчанию масштаб 1.0f (оригинальный размер) и 90% качества Скриншот регулируется за поворота экрана

Параметры

storePath
где PNG должны быть записаны в

Возвращения
верно, если снимок экрана будет создан успешно, иначе ложь

общественного логический takeScreenshot (Файл storePath, поплавок масштаб, int quality)

Сделайте снимок экрана текущего окна и сохраните его как PNG The scr eenshot регулируются за поворот экрана

Параметры

storePath
где PNG должны быть записаны в

масштабе
масштаба

скриншот вниз, если это необходимо; 1.0f для оригинального размера

качество
качество сжатия PNG; Диапазон: 0-100

Возвращает
Истинные если снимок экрана создан успешно, иначе ложь

Для более старых версий Android, нет экрана API, и вы не можете имитировать аппаратные нажатия клавиш, чтобы заставить его programmably , Хотя кажется, что есть способы, чтобы объекты View отображали сами объекты Bitmap, которые затем можно использовать по мере необходимости.

В App Store есть приложения сторонних разработчиков, которые могут делать скриншоты, поэтому, возможно, вы можете вызвать один из них, используя Intent.

И есть сторонние библиотеки скриншота, такие как Android Screenshot Library на Google Code:

Android Скриншот Library (ASL) позволяет программно захватывать скриншоты из Android устройств без требования наличия привилегий корневого доступа. Вместо этого ASL использует собственный сервис, работающий в фоновом режиме, который запускается через Android Debug Bridge (ADB) один раз за загрузку устройства.

Смежные вопросы