Приложение Blackberry не получает данные через интернет на устройстве - PullRequest
0 голосов
/ 18 марта 2011

Я работаю над приложением, которое извлекает данные с сервера, анализирует xml и показывает их в виде списка. Но проблема в том, что код работает на симуляторе нормально, но когда я устанавливаю приложение на устройство, оно не получает данные с сервера (не подключается к Интернету).

Я подписал приложение ключами BB, поэтому никаких ошибок с этой стороны.

Вот мой код .. Я использую для подключения к Интернету -

public XMLParser() throws SAXException, IOException{

             // connect to feed's URL
            String url=urlToHit;
            System.out.println(url);
            try {
                httpConnection = (HttpConnection)Connector.open(url);
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            try {
                inputStream = httpConnection.openDataInputStream();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            if(httpConnection.getResponseCode() == HttpConnection.HTTP_OK)
            {
                // check header field for a specific encoding
                String desiredEncoding = "ISO-8859-1";  //iso-8859-1
                String contenttype = httpConnection.getHeaderField("Content-Type");
                if (contenttype != null)
                {
                    contenttype = contenttype.toUpperCase();
                    if (contenttype.indexOf("UTF-8") != -1)
                    {
                        desiredEncoding = "UTF-8";
                    }
                }

                // we need an input source for the sax parser
                InputSource is = new InputSource(inputStream);

                // setup Encoding to match what the web server sent us
                is.setEncoding(desiredEncoding);

                // create the factory
                SAXParserFactory factory = SAXParserFactory.newInstance();

                // create a parser
                SAXParser parser = null;
                try {
                    parser = factory.newSAXParser();
                } catch (ParserConfigurationException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (SAXException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                // instantiate our handler
                DefaultHandler myHandler= new DefaultHandler(){


                    public void startElement(String uri, String localName,String element_name, Attributes attributes)throws SAXException{


                        if (element_name.equals("Books")){
                            bookCount=attributes.getValue("booksCount");

                    }
                    if (element_name.equals("Book")){

                        TableRowManager row = new TableRowManager();

                        Bitmap scaledBitmap = new Bitmap(50, 70);

                        Bitmap img=Bitmap.createBitmapFromBytes((getImageFromUrl(attributes.getValue("image")).getBytes()), 0,-1, 1);

                        img.scaleInto(scaledBitmap,  Bitmap.FILTER_BILINEAR, Bitmap.SCALE_TO_FIT);
                        //img=(new WebBitmapField(attributes.getValue("image"))).getBitmap();
                        row.add(new BitmapField(scaledBitmap));

                        row.add(new LabelField(attributes.getValue("title"),DrawStyle.ELLIPSIS));
                        //row.add(new BitmapField(attributes.getValue("image"),));
                        LabelField lf1=new LabelField("Author:"+attributes.getValue("author"),DrawStyle.ELLIPSIS){

                            protected void paint(Graphics graphics) {
                             graphics.setColor(0x00878787);

                             super.paint(graphics);

                           }
                        };

                        row.add(lf1);
                        LabelField lf2=new LabelField("ISBN:"+attributes.getValue("isbn13"),DrawStyle.ELLIPSIS){

                            protected void paint(Graphics graphics) {
                             graphics.setColor(0x00878787);

                             super.paint(graphics);

                           }
                        };

                        row.add(lf2);

                        LabelField lf3=new LabelField("year:"+attributes.getValue("year"),DrawStyle.ELLIPSIS){

                            protected void paint(Graphics graphics) {
                             graphics.setColor(0x00878787);

                             super.paint(graphics);

                           }
                        };

                        row.add(lf3);

                        title.addElement(attributes.getValue("title"));
                        isbn.addElement(attributes.getValue("isbn13"));
                        bookImg.addElement(attributes.getValue("image"));
                        author.addElement(attributes.getValue("author"));
                        year.addElement(attributes.getValue("year"));



                        row.add(new BitmapField(p1));

                        rows.addElement(row);
                    }

                    }
                    public void characters(char[] ch, int start, int len) throws SAXException{



                    }

                };

                // perform the synchronous parse           
                parser.parse(is,myHandler);
            }



        }

Пожалуйста, предложите.

1 Ответ

3 голосов
/ 18 марта 2011

Добавление URL-адреса с помощью ;deviceside=true означает, что вы используете транспорт DIRECT_TCP.На некоторых провайдерах беспроводной связи этот транспорт также требует настройки APN на устройстве.Обратите внимание, что настройки APN обычно зависят от поставщика услуг беспроводной связи.

Поиском вы можете найти настройки APN для своего поставщика услуг беспроводной связи.Например, проверьте эту ссылку .

...