Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не выполняется скачивание файла - программа работает? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Загрузка текста и картинки в listView с AsyncTask http://www.cyberforum.ru/android-dev/thread1486655.html
Привет всем. Имеется файл в формате JSON на удалённом сервере. Мне нужно вывести текст из определённых узлов файла и картинки по указанным в файле ссылкам. {"success":1,"products":} Нашёл в...
Программирование Android Как загрузить видео при старте Activity? Всем привет. Возможно этот вопрос покажется для кого-то простым и не уместным, но так как я только начинаю заниматься Андройдом я никак не могу его решить. Проблема в следующем... как сделать так,... http://www.cyberforum.ru/android-dev/thread1486631.html
Отправка сообщения в Skype из приложения Программирование Android
Как отправить в скайп сообщение из моего приложения??Что для этого нужно сделать?? Можете обьяснить вкратце или если это не сложно приложить небольшой фрагмент кода отправки сообщения в скайп??
Backend для мобильного приложения Программирование Android
Пишу приложение, требуется backend. Использовал parse.com, но скорость работы оставляет желать лучшего. Поэтому принял решение разработать свой сервер, до этого никогда этим не занимался. Определил...
Программирование Android Приложения на C++, Delphi под Android http://www.cyberforum.ru/android-dev/thread1486445.html
Доброго всем дня. Прошу поделиться знаниями и опытом использования языков программирования отличных от Java. А вопрос в том, не возникает ли проблем совместимости при запуске приложений на...
Программирование Android Получить token от менеджера аккаунтов Кто может розживать код http://findevelop.blogspot.ru/2012/05/oauth2-android.html Как получить Token и записать его в БД. В примере используются какойто код с отсроченным выполением при попытке... подробнее

Показать сообщение отдельно
lifeforce
123 / 83 / 19
Регистрация: 27.09.2010
Сообщений: 591

Не выполняется скачивание файла - программа работает? - Программирование Android

24.06.2015, 17:27. Просмотров 783. Ответов 7
Метки (Все метки)

Всем привет!
Мне нужна програмка с кнопками для скачивая файлов на телефон из интернет.
нашел одну статью где пишется что программа рабочая.
создал проэкт вставил содержимое скомпилил заработала, нажал на кнопку - показало что началась загрузка, и только и того.
там было написано что надо в манифест поставить строку для разрешения интернет. поставил. но результата нет.
надеюсь может кто и сталкивался или уже использует это в своей программе.
помогите закончить начатое. мне очень интересно где здесь ошибка.
вот код.
MainActivity.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.dropbox.dl.download;
 
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
 
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Button load = new Button(this);
        load.setText("Load file");
        load.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                downloadFile("http://dl.dropbox.com/s/unplki0xa40ql3f/Amplifier.ampl?token_hash=AAFon7ENo62XGixcqLV_s6FZgs0Ir6FnRbafnNzJsEdBeQ&dl=1");
            }
        });
        setContentView(load, new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    }
 
 
    private void downloadFile(String url) {
        final ProgressDialog progressDialog = new ProgressDialog(this);
 
        new AsyncTask<String, Integer, File>() {
            private Exception m_error = null;
 
            @Override
            protected void onPreExecute() {
                progressDialog.setMessage("Downloading ...");
                progressDialog.setCancelable(false);
                progressDialog.setMax(100);
                progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
                progressDialog.show();
            }
 
            @Override
            protected File doInBackground(String... params) {
                URL url;
                HttpURLConnection urlConnection;
                InputStream inputStream;
                int totalSize;
                int downloadedSize;
                byte[] buffer;
                int bufferLength;
 
                File file = null;
                FileOutputStream fos = null;
 
                try {
                    url = new URL(params[0]);
                    urlConnection = (HttpURLConnection) url.openConnection();
 
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setDoOutput(true);
                    urlConnection.connect();
 
                    file = File.createTempFile("Amplifier.amp", "download");
                    fos = new FileOutputStream(file);
                    inputStream = urlConnection.getInputStream();
                    totalSize = urlConnection.getContentLength();
                    downloadedSize = 0;
 
                    buffer = new byte[1024];
                    bufferLength = 0;
 
                    // читаем со входа и пишем в выход,
                    // с каждой итерацией публикуем прогресс
                    while ((bufferLength = inputStream.read(buffer)) > 0) {
                        fos.write(buffer, 0, bufferLength);
                        downloadedSize += bufferLength;
                        publishProgress(downloadedSize, totalSize);
                    }
 
                    fos.close();
                    inputStream.close();
 
                    return file;
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                    m_error = e;
                } catch (IOException e) {
                    e.printStackTrace();
                    m_error = e;
                }
 
                return null;
            }
 
            // обновляем progressDialog
            protected void onProgressUpdate(Integer... values) {
                progressDialog.setProgress((int) ((values[0] / (float) values[1]) * 100));
            };
 
            @Override
            protected void onPostExecute(File file) {
                // отображаем сообщение, если возникла ошибка
                if (m_error != null) {
                    m_error.printStackTrace();
                    return;
                }
                // закрываем прогресс и удаляем временный файл
                progressDialog.hide();
                file.delete();
            }
        }.execute(url);
    }
}
и сам манифест

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.dropbox.dl.download" >
 
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
    <!-- Internet Permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
 
    <!-- Network State Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 
    <!-- Access Location -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 
 
</manifest>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru