Openymsg для Android - PullRequest
       19

Openymsg для Android

0 голосов
/ 29 июня 2011

Я занимаюсь разработкой клиента YM для Android. Я включил API openymsg0.5. Когда я запускаю программу, она показывает следующую ошибку.

06-29 11:32:04.097: ERROR/InputThread(11206): org.openymsg.network.LoginRefusedException: Login Failed, unable to retrieve stage 2 url
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.Session.yahooAuth16Stage2(Session.java:2048)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.Session.yahooAuth16Stage1(Session.java:1955)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.Session.receiveAuth(Session.java:1848)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.InputThread.processPayload(InputThread.java:139)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.InputThread.process(InputThread.java:129)
06-29 11:32:04.097: ERROR/InputThread(11206):     at org.openymsg.network.InputThread.run(InputThread.java:71)

Это основная ошибка:

LoginRefusedException: Login Failed, unable to retrieve stage 2 url

Этот вопрос задавался ранее, но я не нашел ответа, который помог бы мне. Кто-нибудь имеет представление о том, как бороться с этой ошибкой? Я прошел тестовый код openymsg и кодовую базу, и все вроде бы нормально.

Я только что проверил, он отлично работает как Java-приложение, но если используется как часть Android, он выдает ошибку входа в систему. Я создаю сессию следующим образом

Session session = new Session();
session.addSessionListener(new SessionListenerClass());
try{
    session.login("username", "password");
    if (session!=null 
        && session.getSessionStatus()== SessionState.LOGGED_ON) 
    {
        System.out.println("It logged on!!!!!!!");
    }
}

SessionListner:

public class SessionListenerClass extends SessionAdapter
{

    @Override
    public void messageReceived(SessionEvent event)
    {
        // TODO Auto-generated method stub
        super.messageReceived(event);
    }

    @Override
    public void notifyReceived(SessionNotifyEvent event)
    {
        // TODO Auto-generated method stub
        super.notifyReceived(event);
    }

    @Override
    public void newMailReceived(SessionNewMailEvent event)
    {
        // TODO Auto-generated method stub
        super.newMailReceived(event);
    }

    @Override
    public void errorPacketReceived(SessionErrorEvent event)
    {
        // TODO Auto-generated method stub
        super.errorPacketReceived(event);
    }

    @Override
    public void connectionClosed(SessionEvent event)
    {
        // TODO Auto-generated method stub
        super.connectionClosed(event);
    }

}

1 Ответ

0 голосов
/ 30 июня 2011

Библиотека, которую вы используете, основана на jYMSG -библиотеке, которая имеет намного лучшую документацию.

Документация для вашего сгенерированного исключения, LoginRefusedException читает:

Возвращает код состояния, указанный сервер. Это будет одним из значений указано в StatusConstants. Ценности будет либо STATUS_BADUSERNAME для неизвестный аккаунт или STATUS_BAD для неверный пароль (или другая ошибка).

Таким образом, вы можете проверить, является ли это «чем-то другим» или просто неправильным именем пользователя / паролем.


Хорошо, это похоже на ошибку в библиотеке. Я нашел этот , который показывает, что один из руководителей проекта знает о проблеме. Но я не уверен, будет ли это исправлено в ближайшее время.

Также следует заметить, что проект помечен как «альфа». Я могу только предложить вам оставаться в курсе новых выпусков, которые решают эту проблему.

...