私はStackOverFlowと他のウェブサイトで与えられた多くの方法を試しましたが、実際には機能しません。apkをプログラムで自動的に更新してアプリを再起動するにはどうすればよいですか?
私の問題は、私はこのアプリケーションを更新する必要があり、更新後、自動的に同じアプリケーション(更新済み)に戻ります。
これは私のコードです:
private synchronized void runRootUpdate() {
// Install Updated APK
String command = "pm install -r " + downloadPath + apkFile;
Process proc = Runtime.getRuntime().exec(new String[] {"su", "-c", command});
int test = proc.waitFor(); // Error is here.
if (proc.exitValue() == 0) {
// Successfully installed updated app
doRestart()
} else {
// Fail
throw new Exception("Root installation failed");
}
}
private void doRestart() {
Intent mStartActivity = new Intent(context, MainActivity.class);
int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(context, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);
System.exit(0);
}
は私を見てください "というエラーがここにあります。"私の古いアプリは新しいアップデートされたアプリをインストールし、それ自身を殺すので、proc.waitFor()はなくホーム画面に戻りますが、新しいアップデートされたアプリがインストールされています。しかし、私はそれを元に戻す必要があります。私はそれを行うことができる方法はありますか?
あなたは今どんな解決策を持っています? –
更新方法を教えてください。アプリケーションがinn foregroundを実行しているときはオンですか? –