Мне нужно было бы иметь возможность снимать дампы экрана для тестирования, и теперь в ICS есть функция снимка экрана, которая может быть вызвана нажатием (и удержанием) громкости вниз и кнопки питания.
Есть ли способ написать эту функцию через adb? (Насколько я понимаю, для этого нет общедоступного Java-API). Я пытался использовать KeyEvent из Java для эмуляции кнопки питания и громкости, и я пытался использовать adb keyevent и adb sendevent без успеха. Я подозреваю, что кнопка питания также генерирует некоторые низкоуровневые вызовы, которые не генерируются вышеуказанными методами.
Так кто-нибудь знает, можно ли вызвать функцию из adb?
Если это невозможно, кто-нибудь знает, где в исходном коде существует эта функция снимка экрана? Может быть, я смогу что-нибудь понять, прочитав это.
обновление
Исходный код для захвата экрана находится в «frameworks / base / services / surfaceflinger / services / surfaceflinger / SurfaceFlinger.cpp» в функции под названием screenCapture. Я не знаю, можно ли позвонить из jni, но я постараюсь, потому что было бы здорово, если бы я мог сделать снимок экрана через Java.
В противном случае у @edthethird было решение для android.amberfog.com/?p=168, которое позволит сделать снимок экрана с помощью командной строки.
Спасибо за помощь всем!