Подтвердить что ты не робот

Программный скрининг на мобильном устройстве

Я хотел бы реализовать какой-то инструмент удаленной помощи (например, vnc) для Android. Есть ли возможность программно отображать экран на устройстве?

4b9b3361

Ответ 1

Что-то вроде этого может сработать для вас:

View v = view.getRootView();
v.setDrawingCacheEnabled(true);
Bitmap b = v.getDrawingCache();

Ответ 2

Это долгое обсуждение этого вопроса на android-developers, но короткий ответ: вы не можете программно сделать снимок экрана с экран Android-устройства в настоящий момент, если

  • У вас есть root-доступ на этом телефоне или
  • Ваше приложение представляет собой системное приложение

Доступ к Android Manifest READ_FRAME_BUFFER существует (см. api docs здесь), но в настоящее время он может использоваться только системных приложений. Для этого есть разные причины, так как это риск для безопасности. Если фон может в любой момент снять скриншот экрана телефона, люди могут использовать методы распознавания, чтобы обманывать пользовательские пароли, как они были напечатаны, среди другой личной информации.

Итак, нет, приложение VNC невозможно в настоящий момент без root. Чтобы сделать снимок экрана с вашего компьютера (в то время как телефон подключен через usb), вы можете использовать DDMS.

Ответ 3

Вы можете попробовать следующую библиотеку: http://code.google.com/p/android-screenshot-library/ Android Screenshot Library (ASL) позволяет программно снимать скриншоты с устройств Android без необходимости иметь права доступа root. Вместо этого ASL использует собственный сервис, работающий в фоновом режиме, который запускается через Android Debug Bridge (ADB) один раз за загрузку устройства.

Ответ 4

Я думаю, что это возможно в kitkat, используя команду adb для захвата экрана. Вы можете использовать эту команду для записи экрана в качестве видео

adb shell screenrecord /sdcard/demo.mp4

Вы можете найти более подробную информацию здесь

вы можете выполнить команду adb из своего приложения. Проверьте ответ здесь

Ответ 5

поставьте его в onClick..

Bitmap bitmap = takeScreenshot();
saveBitmap(bitmap);

и написать funtcion..

public Bitmap takeScreenshot() {
   View rootView = findViewById(android.R.id.content).getRootView();
   rootView.setDrawingCacheEnabled(true);
   return rootView.getDrawingCache();
}

public void saveBitmap(Bitmap bitmap) {
    File imagePath = new File(Environment.getExternalStorageDirectory() + "/screenshot.png");
    FileOutputStream fos;
    try {
        fos = new FileOutputStream(imagePath);
        bitmap.compress(CompressFormat.PNG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        Log.e("GREC", e.getMessage(), e);
    } catch (IOException e) {
        Log.e("GREC", e.getMessage(), e);
    }
}

Ответ 6

Удаленный tol-тип VNC существует для "НЕКОТОРЫХ" устройств Android (в основном Samsung):
TeamViewer QuickSupport
https://play.google.com/store/apps/details?id=com.teamviewer.quicksupport.market
Дос знает, как этот инструмент получает захват экрана и почему он поддерживает только ограниченный набор устройств?