Skocz do zawartości
Grotas

Jak pobrać plik z serwera za pomocą aplikacji Android

    Rekomendowane odpowiedzi

    Grotas

    Witam!

     

    Zaczynając, tworze pewną aplikacje którą nie chce wypuszczać w sklep play, co za tym idzie muszę stworzyć własny system auto updatu.

    Wymyśliłem sobie tak, że zahostowałem na pewnym hostingu strone, która jedyne co ma to numer wersji, kod javy czyta to ze strony i sprawdza aktualna wersje zapisana w zmiennej, w samym kodzie.

    Wszystko działa wręcz wyśmienicie, jedynym problemem jest pobranie pliku .apki z servera, próbowałem na wiele sposobów ale nic mi nie pomaga, aktualnie po kliknięciu guzika pobierz aplikacja sie crashuje

    Oto cząstka mojego kodu:

     String version = "";
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_update);
    
            TextView tv1 = (TextView)findViewById(R.id.textView6);
            version = vh.updateNewestVersion();
            tv1.setText(version);
    
    
    
            addListenerOnButton();
    
        }
    
    
        public void addListenerOnButton() {
    
            Button button = (Button) findViewById(R.id.button);
    
            button.setOnClickListener(new View.OnClickListener() {
    
                public void onClick(View view) {
                    if(!onceClicked){
                        onceClicked = true;
                        Log.e("DEBUG: ","1");
                        DownloadManager downloadmanager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
                        Log.e("DEBUG: ","2");
                        Uri uri = Uri.parse("http://mojastrona/"+version+"/APKtest.apk");
                        DownloadManager.Request request = new DownloadManager.Request(uri);
                        request.setTitle("My File");
                        request.setDescription("Downloading");
                        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                        request.setDestinationUri(Uri.parse("file://" + "Downloads" + "/APKtest.apk"));
                        downloadmanager.enqueue(request);
    
                    }
                }
    
            });
        }

     

    Edytowane przez Grotas

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mmaciejow

    Pokaż logi. 

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    senega

    Przecież sklep play sam obsługuje updatey. Wgrywasz nową wersję do sklepu i użytkownik dostaje powiadomienie. Ewentualnie możesz sprawdzić zainstalowaną wersję na telefonie z numerem wersji w pliku ściągniętym z neta i wymusić na użytkowniku konieczność aktualizacji. Chyba że chcesz wgrywać jakąś "lewą" aplikację.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Coderoid

    @senega

    Wystarczy, że klient nie chce udostępniać apki przez google play, bo zwyczjanie nie chce aby ktoś ją widział. Wtedy trzeba mieć własny system update'ów. 

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    senega

    Sorry, przy czytaniu pierwszego zdania zniknęła mi negacja ;D

     

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    giaur500

    Pokaż komunikat wyjątku. Czy są odpowiednie uprawnienia w AndroidManifest?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x