Aktualisieren einer Anwendung OTA
Frage
Ich entwickle eine Anwendung, die von einer Website (Markt wahrscheinlich auch) zur Verfügung stehen wird. Das Problem, das ich im Moment habe, ist, wie das Updates für die App zu behandeln. Ich weiß, wie die Version mit dem aktuellen zu überprüfen, und ich weiß, wenn ich es aktualisieren müssen. Die Frage ist ... wie?
Gibt es eine Möglichkeit ich eine APK-Datei von der Website herunterladen und starten Sie den Prozess installieren? Der Benutzer wird zur Bestätigung natürlich hat, aber ich möchte nur in der Lage sein, es für ihn zu starten. 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 hat nicht wirklich etwas tun ... soll ich öffne eine webView mit der URL? Ein neuer Thread runnable? Jede andere Art und Weise? Bitte Hilfe:)
Prost
Lösung
Am einfachsten ist nur ein Intent
zu starten, um die Download-URL in der Browser
zu öffnen. Dies wird den APK
herunterladen und der Benutzer kann dann durch Anklicken in den Download-Managern installieren.
Sie sagen, dass dieser OTA auf den Markt trennen behandeln, so sollte der Benutzer bereits deaktiviert hat „Allow Apps von Nicht-Market-Quellen“, wenn sie Ihre Anwendung zunächst installiert ist.
Andere Tipps
Nur ein Hinweis, dass dies funktioniert nicht wahrscheinlich ist gut: Die meisten Geräte sind mit den „Allow Apps aus Nicht-Market-Quellen“ Option deaktiviert (unter Einstellungen> Anwendungen)
.Das bedeutet, dass, wenn Sie die Absicht starten Sie die App zu installieren, wird der Benutzer eine Warnmeldung erhalten und die Installation fehlschlagen.
Während Sie gegen eine externe Quelle für neues Updates überprüfen können (zum Beispiel eine Textdatei auf dem Server überprüft) und den Benutzer benachrichtigen, ich würde sich auf den Android Market umleiten sich das Upgrade zu tun.
Wie jeder „Allow Apps von Nicht-Market-Quellen“, so hat Option könnte ein echten Schmerzen für Sie sein als andere Personen als Beta-Tester oder wie sie nicht Interessenten würden diese Option für varoius Gründe zu prüfen. Versuchen Testflug, sollte es helfen. https://testflightapp.com/android/