Runtime.getRuntime(). exec 메소드를 사용하여 외부 프로그램 (C로 작성)을 호출하는 앱을 개발하려고합니다. 이 프로그램은 기본적으로 gstreamer 기반의 RTSP 서버이며 안드로이드 명령 프롬프트에서 실행하면 잘 작동합니다. 그러나 응용 프로그램에서 프로그램을 실행할 때 다음과 같은 오류가 발생합니다. Android 앱 : 프로그램에 대한 소켓 액세스 허용
소켓 (권한이 거부되었습니다) 내의 AndroidManifest.xml 파일의 네트워크 액세스를 부여했다
를 바인딩하지 못했습니다.
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
나는 또한이 시도 :
String cmd = "ping localhost";
Runtime.getRuntime().exec(cmd);
하는 동안 나는 가지고 :
핑 : ICMP 열린 소켓 : 작업 나는 또한 실행하려고
을 할 수 없습니다 앱의 또 다른 프로그램 (안드로이드 스크린에 이미지를 보여줌 - 서핑 플랭어 싱크). 따라서, android.permission.ACCESS_SURFACE_FLINGER
을 매니페스트 파일에 포함 시켰습니다. 그러나, 그것은 표면 수세미 싱크에 표시 할 수 없었습니다.
그래서 이러한 권한이 이러한 외부 프로그램에 전달되지 않는다고 생각합니다. 이것을 달성 할 수있는 방법이 있습니까? 이 C 기반 프로그램을 Java로 변환하고 싶지 않습니다.