Updating einer Anwendung OTA

Ich entwickle eine Anwendung, die auf einer Website verfügbar sein wird (wahrscheinlich auch auf dem Markt). Das Problem, das ich im Moment habe, ist, wie ich mit den Updates der App umgehen soll. Ich kann die Version mit der aktuellen vergleichen und weiß, ob ich sie aktualisieren muss. Frage ist ... wie?

Ist es eine Möglichkeit, eine APK von der Website herunterzuladen und den Installationsvorgang zu starten? Der Benutzer muss das natürlich bestätigen, aber ich möchte es nur für ihn starten können. Im Moment mache ich das:

private void doUpgrade() {
    // TODO Auto-generated method stub
    Builder builder = new AlertDialog.Builder(this);
    builder.setTitle(getString(R.string.upgrade));
    builder.setIcon(R.drawable.help);
    builder.setMessage(getString(R.string.needUpgrade));
    builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

            Map<String, String> data = new HashMap<String, String>();

            try {
                HttpResponse re = Registration.doPost("http://www.android-town.com/appRelease/AndroidTown.apk",data);

                int statusCode = re.getStatusLine().getStatusCode();
                closeApp();

            } catch (ClientProtocolException e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), getString(R.string.noURLAccess), Toast.LENGTH_SHORT).show();
                closeApp();
            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), getString(R.string.noURLAccess), Toast.LENGTH_SHORT).show();
                closeApp();
            }
        }
    });
    builder.setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            dialog.cancel();
            closeApp();
        }
    });
    builder.show();
}

Aber es macht eigentlich nichts ... soll ich eine webView mit der URL öffnen? Ein neuer ausführbarer Thread? Irgendwie anders? Bitte helfen Sie:)

Pros

Antworten auf die Frage(3)

Ihre Antwort auf die Frage