Я уже несколько дней пытаюсь получить растровый снимок экрана SurfaceView, но чем больше я его изучаю, тем не менее, в настоящее время не существует решения для ОС на базе ОС Android 2.3.4 моего устройства от HTC.
Итак, перейдите к Плану B, где я только что обнаружил другой блог: «В моем HTC Evo 3d все, что мне нужно сделать, это удерживать кнопку питания в течение 1-2 секунд, а затем нажать кнопку« Домой », и это займетснимок экрана. Приложение не требуется. "Оказывается, это прекрасно работает на моем планшете.
Я также знаю, что, копаясь, есть следующие намерения: android.intent.action.SCREEN_OFF & android.intent.category.HOME
(Так что япопробовал кучу экспериментов с кодом, чтобы попытаться имитировать комбинацию из 2-х клавиш в коде, чтобы получить скриншот в этой грубой усадьбе. К сожалению, безуспешно).
Так мой?- Есть ли у кого-нибудь понимание метода, чтобы вызвать эту «последовательность снимков экрана» для моего устройства HTC из кода Java?(Предположим, мне нужно обмануть операционную систему, заставив ее думать, что я удерживаю клавишу питания и одновременно нажимаю клавишу Home) ...
Подробнее: Вот фрагмент кода, который я пытаюсь выполнить:
Нажатие кнопки для проверки ... ...
Thread t = new Thread() {
public void run() {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_POWER);
Instrumentation inst2 = new Instrumentation();
inst2.sendKeyDownUpSync(KeyEvent.KEYCODE_HOME);
} // run
}; // thread t
Не работает, так как inst.sendKeyDownUpSync неверен, так как мне нужно поведение sendKeyDown (& hold) или его эквивалент
Большое спасибо за любые советы.Если я получу эту работу, я опубликую решение здесь.Приветствия GH
PS;Я полагаю, что под капотом есть какие-то особые намерения?Есть ли где-нибудь системный журнал, чтобы можно было заглянуть в дерево вызовов и выяснить, что это такое?
РЕДАКТИРОВАТЬ (БОЛЬШЕ) ... 9/24/11
Подробнее.Все еще не работает, но я иду по этому пути и думаю, что он ближе ...
// Попытка имитировать Длительное нажатие (ВНИЗ) + ДОМОЙ, чтобы сказать HTC, чтобы вызвать команду «Снимок экрана» (ПРЕДУПРЕЖДЕНИЕ: Специфическое поведение планшета HTC!)
Thread tt = new Thread() {
public void run() {
final KeyEvent dapowerkey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_POWER);
Handler onesecondhandler = new Handler();
onesecondhandler.postDelayed(new Runnable() {
public void run() {
// fpr about 1 second send power down keystrokes (DOWN ONLY)
while (true) { dispatchKeyEvent(dapowerkey); }
} // we are done running on the timer past time point
}, 750); // 3/4 second key press
// send the HOME keystroke
Instrumentation inst1 = new Instrumentation();
inst1.sendKeyDownUpSync(KeyEvent.KEYCODE_HOME);
} // outer thread run tp mpt block the GUI
}; // outer thread t
tt.start();
...
Также подумал, смогу ли я отправить правильное намерение прямо в нужное место на устройстве, чтобы я мог напрямую запустить функцию захвата экрана (вот чтоЯ действительно хочу. Через некоторые проверки журналов (когда вы нажимаете Long-Power + Home на HTC) вызывается программа 'com.htc.mysketcher' (FlashActivity) ...
Опять же, если я это выясню, я отправлю сообщение в группу ... Приветствия GH