0

아무 프롬프트없이 apk를 자동 설치하려고합니다.java.io.IOException : exec()를 실행하는 중 오류가 발생했습니다. 명령 : 작업 디렉토리 : null 환경 : null

이 코드는 adb 명령을 사용하여 apk 파일을 설치하는 코드입니다.

public void InstallAPK(String filename){ 
    File file = new File(filename); 
    if(file.exists()){ 
     try { 
      String command; 
      command = "adb install -r " + filename; 
      Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", command }); 
      proc.waitFor(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

하지만이 코드를 실행하면 다음 오류가 발생합니다.

java.io.IOException : exec()를 실행하는 중 오류가 발생했습니다. 명령 : [su, -c, adb install -r /storage/emulated/0/Download/sampleapp.apk] 작업 디렉토리 : null 환경 : null

나는 이러한 권한을 부여했습니다.

<uses-permission android:name="android.permission.INSTALL_PACKAGES"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

누군가가 나이 오류를 해결하는 데 도움이 될 수 있습니다하시기 바랍니다.

+0

이 해결책이 있습니까? 그렇다면 알려 주시기 바랍니다. – Jaydev

답변

0

응용 프로그램의 범위에서 apk를 설치하기 위해 응용 프로그램의 범위에서 명령을 자동으로 실행할 수 없습니다.

하지만 AOSP를 만들기 위해 의도를 높일 수는 있습니다. 이 답변을 확인하십시오 : Install Application programmatically on Android

Intent promptInstall = new Intent(Intent.ACTION_VIEW) 
    .setDataAndType(Uri.parse("file:///path/to/your.apk"), 
        "application/vnd.android.package-archive"); 
startActivity(promptInstall); 
+2

감사합니다. 나는 이미 이것을 알고있다. 하지만 프롬프트없이 설치하려고합니다. – Sridhar

+0

어떤 전화기로도 가능하지 않습니다. 자신의 전화를 뿌리 째 뽑아 낼 수는 있지만 원하는 것은 아닙니다. – cokceken