Google Playアプリケーションではなく、更新を行う方法を提供したいので、作成しているアプリケーションをプログラムで更新しようとしています。
アップデート用のAPKをダウンロードした後、Androidインストーラーを起動する方法を探していましたが、インストーラーから結果を取得する必要があります。これにより、アップデートが成功したかどうか、またはキャンセルされたかどうかがわかります。ユーザーによる。
私はこれについてStackOverflowでたくさんの質問を見ました、そして答えは通常放送受信機を使うことを含みました。それに関する問題は、インストールされているパッケージに関するインテントのみを受信でき、失敗のキャンセルされたインストールに関するインテントを受信できないことです。
さらに調査を行ったところ、Intent APIがIntent.EXTRA_RETURN_RESULTなどの追加機能を提供しているようです。これをtrueに設定すると、インストーラーアクティビティの結果が返されます。onActivityResultを使用していると思います。残念ながら、これは機能しません。これを機能させた人はいますか/このように機能しますか?
これが私が現在持っているインストーラーアクティビティの開始を準備するコードです:
Intent installApp = new Intent(Intent.ACTION_INSTALL_PACKAGE);
installApp.setData(downloadedApk);
installApp.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
installApp.putExtra(Intent.EXTRA_RETURN_RESULT, true);
installApp.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, context.getApplicationInfo().packageName);
context.startActivityForResult(installApp, 1);