我正试图在没有任何提示的情况下安静地安装apk。
这是使用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 :(得分: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);