0

Ich versuche, apk leise ohne Aufforderung zu installieren.java.io.IOException: Fehler beim Ausführen von exec(). Befehl: Arbeitsverzeichnis: null Umgebung: null

Dies ist der Code, der die apk-Datei mit dem Befehl adb installiert.

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(); 
     } 
    } 
} 

Aber wenn ich diesen Code ausführen, erhalte ich den folgenden Fehler.

java.io.IOException: Fehler beim Ausführen von exec(). Befehl: [su, -c, adb install -r /storage/emulated/0/Download/sampleapp.apk] Arbeitsverzeichnis: null Umgebung: null

Ich habe diese Berechtigungen erteilt.

<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" /> 

Bitte kann mir jemand helfen, diesen Fehler zu beheben.

+0

könnten Sie eine Lösung dafür finden? Wenn ja, lass es mich wissen. – Jaydev

Antwort

0

Sie können keinen Befehl im Anwendungsbereich einer Anwendung ausführen, um eine APK außerhalb des Gültigkeitsbereichs dieser Anwendung zu installieren.

Aber Sie können eine Absicht erheben, um AOSP das zu tun. Überprüfen Sie diese Antwort vielleicht: 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

Danke. Ich weiß das schon. Aber ich versuche, ohne Aufforderung zu installieren. – Sridhar

+0

Nicht für jedes Telefon möglich. Sie können Ihr eigenes Telefon rooten und es geschehen lassen, aber Sie wollen das nicht. – cokceken

Verwandte Themen