0

Я пытаюсь установить apk без каких-либо подсказок.java.io.IOException: Ошибка при выполнении exec(). Команда: Рабочий каталог: null Окружающая среда: null

Это код, который устанавливает файл apk с помощью команды adb.

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(). Команда: [су, -с, ADB установить -r /storage/emulated/0/Download/sampleapp.apk] Working Directory: пустой среды: нулевой

Я дал эти разрешения.

<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