相关疑难解决方法(0)

无法在Jelly Bean上读取套接字InputStream

我有一个TCP套接字连接,在Android 2.3上运行良好但现在面临Android 4.1上的一些问题.问题是InputStream.read()方法总是返回-1(没有阻塞),就像关闭连接一样.

创建套接字:

SocketFactory socketFactory = SocketFactory.getDefault();
Socket socket = socketFactory.createSocket("c.whatsapp.net", 5222);
socket.setSoTimeout(3*60*1000);
socket.setTcpNoDelay(true);
Run Code Online (Sandbox Code Playgroud)

检索输入和输出流并编写一些初始数据:

InputStream inputStream = new BufferedInputStream(socket.getInputStream());
OutputStream outputStream = new BufferedOutputStream(socket.getOutputStream());

outputStream.write(87);
outputStream.write(65);
outputStream.write(1);
outputStream.write(2);
outputStream.flush();
Run Code Online (Sandbox Code Playgroud)

然后,这个条件总是不受阻塞地通过:

int c = inputStream.read();
if (c < 0) {
    Log.d(TAG, "End of stream");
}
Run Code Online (Sandbox Code Playgroud)

此代码在后台线程中运行.它正在开发姜饼.

试图使用InputStreamReader和OutputStreamWriter而不是直接流 - 没有效果.

java sockets android inputstream android-4.2-jelly-bean

20
推荐指数
1
解决办法
2246
查看次数

XmlPullParser - 意外令牌(android)

我正在开发一个应用程序,它将从我在res/xml/experiment.xml中存储的xml中读取,但是当我尝试解析它时,它给了我一个xmlPullParserException.

这是我非常简单的xml文件:

    <?xml version="1.0" encoding="utf-8"?>
    <message>Hello</message>
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    public static void parse(Context ctx) throws XmlPullParserException, IOException {
    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    XmlPullParser xpp = factory.newPullParser();

    InputStream in = ctx.getResources().openRawResource(R.xml.experiment);

    xpp.setInput(in, "UTF_8");

    int eventType = xpp.getEventType();

    while (eventType != XmlPullParser.END_DOCUMENT) {
        String tagName = xpp.getName();

        switch (eventType) {
        case XmlPullParser.START_TAG:
            Log.d("debug", "Entering tag: " + tagName);

            break;
        case XmlPullParser.TEXT:
            Log.d("debug", "Text inside: " + xpp.getText());

            break;
        case XmlPullParser.END_TAG:
            Log.d("debug", "Ending tag: " + tagName);

            break;

        }

        eventType = xpp.next();
    }

}
Run Code Online (Sandbox Code Playgroud)

以下是它抛出的异常: …

xml android xmlpullparser

5
推荐指数
2
解决办法
1万
查看次数