2013-07-24 6 views
-1

내 코드는 모두 완료되었으므로 스크린 샷을 찍기 위해 모든 코드를 시도했지만 그 중 아무 것도 작동하지 않습니다. 일부는 내 활동 레이아웃에서 작동하지만 스크린 풋볼 UX https://play.google.com/store/apps/details?id=com.liveov.shotuxtrial처럼 내 장치의 스크린에 스크린 샷을 찍을 수 있습니다. 루트 액세스만으로이 작업을 수행 할 수 있습니다. screencapdev/graphics/fb0과 같은 메서드에 대해 들었지만 "screencap"메서드가 내 장치 (2.3.7)에서 작동하지 않으며 아직 dev/graphics/fb0 메서드를 사용하는 방법에 대한 정보를 얻지 못했습니다. .. 나는 여전히 라이브러리 메소드를 시도했지만 성공하지는 못했습니다. 누군가가 내 스크린 샷 코드를 얻을 수 있기를 바랍니다. 나쁜 영어로 죄송합니다.스크린 샷 (스크린 샷 UX와 같은 Android 루트)

답변

0

권한에 따라 프레임 버퍼에 대한 액세스가 제한됩니다. 당신이

$ ls -l /dev/graphics 

를 실행하면 당신은 당신의 장치를 근절해야하므로 당신은,

crw-rw---- root  graphics 29, 0 2013-07-10 10:21 fb0 
crw-rw---- root  graphics 29, 1 2013-07-10 10:21 fb1 
crw-rw---- root  graphics 29, 2 2013-07-10 10:21 fb2 
crw-rw---- root  graphics 29, 3 2013-07-10 10:21 fb3 
crw-rw---- root  graphics 29, 4 2013-07-10 10:21 fb4 

액세스 (rw가)에만 root:graphics에 부여되는 것을 확인할 수 있습니다.

+0

내 장치가 루팅되었지만 여전히 어떻게하는지 설명 할 수 있습니까? –

+0

그런 다음이 파일 사용 권한을 변경하고 전 세계에서 읽을 수있게 설정할 수 있습니다 –

0

다음은 루트 장치의 쉘 명령을 통해 스크린 샷을 찍는 코드입니다. 'fileDestination'은 스크린 샷 파일을 저장할 위치의 경로입니다.

try { 
    Process process = Runtime.getRuntime().exec("su", null,null); 

    OutputStream os = process.getOutputStream(); 
    os.write(("/system/bin/screencap -p " + fileDestination).getBytes("ASCII")); 
    os.flush(); 
    os.close(); 
    process.waitFor(); 
} catch (IOException e) { 
    Log.d(TAG,LOG_LABEL+" IOException e:: SCREENSHOT FAILED"); 
    e.printStackTrace(); 
} catch (InterruptedException e) { 
    Log.d(TAG,LOG_LABEL+"InterruptedException e:: SCREENSHOT FAILED"); 
    e.printStackTrace(); 
}