Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MMS Android Receiver, MMS Android Receiver 
:(
    Опции темы
Chekin
Дата 24.10.2014, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.11.2013

Репутация: нет
Всего: нет



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

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


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;
        }


}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.