2013-02-20 12 views
18

TL: DR; wersja;)Aplikacja do samodzielnej aktualizacji

  • moja aplikacja powinna działać bez interakcji użytkownika (autostart itp działa)

  • powinna ona aktualizowana (przez apk) bez interakcji użytkownika

  • zakorzenione urządzenia możliwe są

.

Problem:

  • zapytań nowszą apk z serwera działa
  • podczas uruchamiania apk z intencją, "install APP" szybkich wyskakuje i wymaga potwierdzenia użytkownika
(widok?)

Jak rozwiązać ten problem bez interakcji użytkownika?

http://code.google.com/p/auto-update-apk-client/ To wydaje się być rozwiązaniem, ale musi być lepsze podejście.

ja już znalazłem to: Install Application programmatically on Android

ale to nie rozwiąże mój problem.

Odpowiedz

31

rozwiązać go! : D

Działa tylko w urządzeniach z zrootowanych, ale działa idealnie. Używanie unixa cmd "pm" (packageManager) pozwala na instalowanie apków z sdcard, podczas wykonywania go jako root.

Mam nadzieję, że pomoże to niektórym osobom w przyszłości.

public static void installNewApk() 
{ 
     try 
     { 
      Runtime.getRuntime().exec(new String[] {"su", "-c", "pm install -r /mnt/internal/Download/fp.apk"}); 
     } 
     catch (IOException e) 
     { 
      System.out.println(e.toString()); 
      System.out.println("no root"); 
     } 
} 

Wymagane uprawnienia:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

to daje mi kod błędu 139. To jest błąd segmentacji. Ale mój tablet jest już zrootowany. Każdy pomysł, dlaczego? – jeevs

+0

Czy możesz mi powiedzieć, jakie są uprawnienia wymagane do uruchomienia tego kodu na zrootowanym tablecie? – jeevs

+4

Gdybym mógł, zrobiłbym to 100 razy! – Ben

5

Moja sugestia to użycie mechanizmu wtyczki do aktualizacji aplikacji. Możesz dynamicznie ładować klasy z internetu i uruchamiać je wewnątrz aplikacji bez żadnej interakcji użytkownika. Istnieje wiele zasobów rozłożone w Internecie:

How to load a Java class dynamically on android/dalvik?

http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html

+0

miły pomysł, dam jej spróbować, ale tak czy inaczej myślę aktualizacją przy użyciu apk byłoby bardziej wytrzymałe i mniej podatne na błędy. – Thkru

+0

głównym problemem jest to, że nie można dodać nowej aktywności z tym ... – Selvin

+0

Dobra rada, wybór zależy od bardzo konkretnych potrzeb. – Zielony

Powiązane problemy