2017-09-11 7 views
1

私は、アプリケーションのOTAの更新プログラムを使用しています。これは次のように動作します。「check update」をクリックしてチェックし、存在する場合はダウンロードし、APKをデバイスに保存します。それから私はそれをインストールすることができますが、もちろん私は確認ダイアログを持っています。私はそれを静かにやり直す必要があります。ダウンロードしたapkからアプリの自己更新を実装するにはどうすればよいですか?

ダウンロードが完了したら自動的にインストールします。だから私はちょうどクリックして、いくつかのアップデートがある場合、アプリは新しいバージョンで再起動します。私はそれを行う方法を理解することはできません。 デバイスのルートはです。

答えて

2

次のコードは、ルーテッドデバイスでのみ機能します。

private int installApk(File file) { 
    if (!file.exists()) throw new IllegalArgumentException(); 

    Process process = null; 

    try { 
     process = Runtime.getRuntime().exec(new String[]{"su", "-c", "pm install -r " + file 
       .getAbsolutePath()}); 
     int exitCode = process.waitFor(); 
     if (exitCode != 0) throw new RuntimeException(); 
    } catch (IOException | InterruptedException exception) { 
     Log.w(getClass().getSimpleName(), exception); 
    } 

    return (process == null) ? Integer.MIN_VALUE : process.exitValue(); 
} 
0

セキュリティ上の理由からこれを使用することはできません。ユーザーのアプリケーションは、ルートのない電話機にサイレントモードでインストールすることはできません。

あなたが行うことができるのは、アップデートをダウンロードしたばかりのユーザに、インストールしたいかどうかを尋ねることだけです。その場合は、インストールの意図を破って、ユーザーにインストールを進めさせてください。

関連する問題