BlackBerry Поиск адреса электронной почты - PullRequest
3 голосов
/ 10 августа 2011

Я работаю над приложением BlackBerry, которое будет искать адрес электронной почты, зарегистрированный на устройстве.Я использую этот код для выполнения:

            Session session = Session.getDefaultInstance();
        System.out.println("############### got session ################");
        if (session != null) {
            Store store = session.getStore();
            System.out.println("################ got store ######################");
            ServiceConfiguration serviceConfig = store.getServiceConfiguration();
            System.out.println("################ got config #####################");
            email = serviceConfig.getEmailAddress();
        }

Это прекрасно работает для устройств, которые уже зарегистрировали адрес электронной почты.Но если устройство не имеет зарегистрированного адреса, эта строка:

email = serviceConfig.getEmailAddress();

Никогда не возвращается.Таким образом, все мое приложение останавливается на неопределенный срок.Каков наилучший подход для решения этой проблемы?Моя первая идея - установить задачу таймера, которая через 1 или 2 секунды установит в строке электронной почты какое-либо значение по умолчанию, например, «Адрес не зарегистрирован».Есть ли какой-нибудь лучший способ получить уведомление о том, что не было никакого электронного письма, кроме того, что приложение просто зависало и ничего не делало?

1 Ответ

4 голосов
/ 10 августа 2011

Оказывается, что serviceConfig.getEmailAddress(); выдает исключение, если нет зарегистрированного электронного письма. Там нет упоминания об этом в документации BlackBerry. Это также странно, потому что, если вы не поймаете это исключение, метод просто никогда не вернется, и ваше приложение остановится на неопределенный срок. Но для исправления вы можете просто окружить этот вызов try / catch и установить адрес электронной почты по умолчанию в блоке catch.

Я бы сэкономил много времени, если бы это было правильно задокументировано. Я надеюсь, что размещение ответа здесь спасет кого-то от погони за недокументированным документом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...