StreamConnection黑莓中的问题

时间:2011-02-21 07:25:56

标签: blackberry

我在使用此代码显示空白屏幕的设备中遇到问题,但它在模拟器中运行良好。能帮我解决一下这个问题....

package test;

import java.io.DataInputStream;

import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;

import net.rim.device.api.system.Display;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.container.VerticalFieldManager;

public class HomeScreen extends UiApplication{


    public static void main(String args[]){
        new HomeScreen().enterEventDispatcher();
    }
    public HomeScreen(){
        super();
        pushScreen(new MyScreen());
    }
}

class MyScreen extends MainScreen{
    private VerticalFieldManager vfm;
    public MyScreen(){
        super();
        vfm = new VerticalFieldManager(VerticalFieldManager.VERTICAL_SCROLL){
            protected void paintBackground(Graphics graphics) 
            {        
                graphics.setBackgroundColor(0xBACd22);
                graphics.clear();
            }

            protected void sublayout(int width, int height) {
                super.sublayout(width, height);
                setExtent(Display.getWidth(),Display.getHeight());
            }
        };
        add(vfm);
        Thread t = new Thread(new Runnable(){
            public void run(){
                CallService();
            }
        });t.start();
    }

    private void CallService(){
        final StreamConnection streamConn;
            try {
                streamConn = (StreamConnection)Connector.open("http://www.bankofcanada.ca/rss/fx/noon/fx-noon-all.xml");
                            LabelField applicationTitle = new LabelField("XML Parser");
                            setTitle(applicationTitle);
                            final DataInputStream _inputStream = new DataInputStream(streamConn.openInputStream());
                            UiApplication.getUiApplication().invokeLater(new Runnable(){
                                public void run(){
                                    Dialog.alert("Test" +_inputStream );
                                }
                            });
            } catch (Exception e) {
                e.printStackTrace();
            }


    }
}

以上代码无法在设备中运行?提前谢谢..

1 个答案:

答案 0 :(得分:1)

您需要根据您使用的连接类型(WiFi / BES / BIS / WAP2 / TCP)附加URL参数。

For example if you are using BES connection:

    streamConn = (StreamConnection)Connector.open("http://www.bankofcanada.ca/rss/fx/noon/fx-noon-all.xml;deviceside=false");

and if your are using WiFi:

    streamConn = (StreamConnection)Connector.open("http://www.bankofcanada.ca/rss/fx/noon/fx-noon-all.xml;deviceside=true;interface=wifi");

and For WAP2/TCP:

        streamConn = (StreamConnection)Connector.open("http://www.bankofcanada.ca/rss/fx/noon/fx-noon-all.xml;deviceside=true");

了解更多信息:

http://supportforums.blackberry.com/t5/Java-Development/Sample-HTTP-Connection-code-and-BIS-B-Access/td-p/653175