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

MMS Android Receiver - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Доступность для пользовательского View http://www.cyberforum.ru/android-dev/thread1283558.html
Доброго времени суток! Как уже говорилось ранее - у меня есть служба-метод ввода текста для слепых. Так же реализован пользовательский View. Написан сценарий звукового взаимодействия. И вот мне...
Программирование Android Как сделать поиск LIKE из БД не восприимчивым к регистру? Сам запрос вот - String sqlQuery1 = "SELECT * FROM city AS t1, region AS t2 ON t1.region_number = t2._id WHERE lower(t1.name) LIKE '%' || ? || '%';"; Нужно что б выдавался результат при вводе... http://www.cyberforum.ru/android-dev/thread1283466.html
Программирование Android Синхронизация базы данных с облаком
Мне нужно сохранять базу данных на каком-либо облаке для каждого пользователя приложения, который, например, авторизировался через гугл, чтобы на другом устройстве или при переустановке приложения...
Не выкладывается apk в Google play Программирование Android
Сбой при загрузке Не удается проанализировать APK с использованием команды aapt. Текст ошибки: Failed to run aapt dump badging: W/ResourceType( 1518): Failure getting entry for 0x7f06005b (t=5...
Программирование Android Не обновляется ListView http://www.cyberforum.ru/android-dev/thread1283312.html
Нужно чтобы после завершения Activity обновлялся listView. При рестарте приложения список обновляется public class NotifActivity extends Activity { String json; List<JSONObject> list;...
Программирование Android Observable есть класс PageFragment extends Fragment, и у него есть @Override public void onClick(View view) { вот хочу сюда повесить листенер в примерах с... подробнее

Показать сообщение отдельно
Edison4
6 / 6 / 0
Регистрация: 23.02.2012
Сообщений: 169

MMS Android Receiver - Программирование Android

24.10.2014, 19:07. Просмотров 420. Ответов 0
Метки (Все метки)

Столкнулся с проблемой - скачивание данных с ММС Центра
Я получаю заголовки и из них извлекаю url хранения ммс и адрес отправителя.
Затем пытаюсь по http скачать данные по url который достал из заголовка.
Но мне возвращается IOException Time Out.
Почему я не могу скачать ммску, стандартное приложение получает ММС.

Ниже код моего ресивера:

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
import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import com.android.mms.transaction.HttpUtils;
import com.android.mms.util.SendingProgressTokenManager;
import com.google.android.mms.pdu_alt.*;
 
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
 
/**
* Created by Ed on 02.10.2014.
*/
 
public class MMSReceiver extends BroadcastReceiver {
 
        Context context;
        ConnectivityManager manager;
 
        public void onReceive(final Context context, Intent intent) {
                this.context = context;
                Bundle bundle = intent.getExtras();
                manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 
                byte[] buffer = bundle.getByteArray("data");
                GenericPdu genericPdu = new PduParser(buffer).parse();
                ContentValues vl = getParams(genericPdu);
                final String contentLocation = vl.getAsString("ct_l");
 
                new Thread(new Runnable() {
                        @Override
                        public void run() {
                                try {
                                        ensureRouteToHost(context, contentLocation,  "10.10.10.10");
                                        byte[] rawPdu = HttpUtils.httpConnection(context, SendingProgressTokenManager.NO_TOKEN, contentLocation, null, HttpUtils.HTTP_GET_METHOD, true, "10.10.10.10", 8080); // ЗДЕСЬ <====================
 
                                        Log.i("mLogs", "DATA :" + rawPdu.length);
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                        }
                }).start();
 
        }
 
        public static void ensureRouteToHost(Context context, String url, String proxy) throws IOException {
                ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
                connMgr.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE_HIPRI, "enableMMS");
 
                int inetAddr;
                if (proxy != null && !proxy.equals("")) {
                        String proxyAddr = proxy;
                        inetAddr = lookupHost(proxyAddr);
                        if (inetAddr == -1) {
                                Log.i("mLogs", "Cannot establish route for " + url + ": Unknown host");
                        } else {
                                if (!connMgr.requestRouteToHost(ConnectivityManager.TYPE_MOBILE_MMS, inetAddr)) {
                                        Log.i("mLogs","Cannot establish route to proxy " + inetAddr);
                                }
                        }
                } else {
                        Uri uri = Uri.parse(url);
                        inetAddr = lookupHost(uri.getHost());
                        if (inetAddr == -1) {
                                throw new IOException("Cannot establish route for " + url + ": Unknown host");
                        } else {
                                if (!connMgr.requestRouteToHost( ConnectivityManager.TYPE_MOBILE_MMS, inetAddr)) {
                                        throw new IOException("Cannot establish route to " + inetAddr + " for " + url);
                                }
                        }
                }
        }
 
        private static int lookupHost(String hostname) {
                InetAddress inetAddress;
                try {
                        inetAddress = InetAddress.getByName(hostname);
                } catch (UnknownHostException e) {
                        return -1;
                }
                byte[] addrBytes;
                int addr;
                addrBytes = inetAddress.getAddress();
                addr = ((addrBytes[3] & 0xff) << 24) | ((addrBytes[2] & 0xff) << 16) | ((addrBytes[1] & 0xff) << 8) | (addrBytes[0] & 0xff);
                return addr;
        }
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru