7
Powiel możliwe:
Android: install .apk programmaticallyAndroid self-aktualizacja
muszę zaktualizować Androida. Wewnętrznie program, pobierz nową wersję. Jak mogę zastąpić obecną wersję tym, która nowa została pobrana (programowo)?
URL url = new URL("http://www.mySite.com/myFolder/myApp.apk");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try
{
FileOutputStream fos = this.getApplicationContext().openFileOutput("myApp.apk", Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE);
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8"));
StringBuilder sb = new StringBuilder();
byte[] buffer = new byte[8192];
int len;
while ((len = in.read(buffer)) != -1)
{
// EDIT - only write the bytes that have been written to
// the buffer, not the whole buffer
fos.write(buffer, 0, len); // file to save app
}
fos.close();
.... here I have the file of new app, now I need use it
Witam @lexmiir, dziękuję za odpowiedź, robię to, co powiedziałeś, a teraz mam okno dialogowe z ostrzeżeniem mówiącym o błędzie Parsera - Wystąpił problem z parsowaniem paczki. Jakieś wskazówki? :-) – nonickh
Hi @nonickh, czy podpisałeś oba apki z tym samym kluczem? Ten błąd może pojawić się, gdy aplikacje o tej samej nazwie pakietu są podpisane za pomocą różnych kluczy – lexmiir
Hi @lexmiir, Przepraszam za opóźnienie, porównałem dwa pliki i są one różne, prawdopodobnie spowodowane przez proces kopiowania strony, najpierw próbuję aby rozwiązać ten problem, wdzięczny za twoje wsparcie – nonickh