Как прочитать вывод консоли в мобильных телефонах j2me? Куда идет System.out.println ()? - PullRequest
3 голосов
/ 24 сентября 2008

При написании приложений j2me для мобильных телефонов при использовании эмулятора печатается на консоли System.out.println(). Однако когда код развернут на мобильном телефоне, куда направляется вывод консоли?

Если это невозможно увидеть в отвязанном мобильном телефоне, есть ли способ увидеть это, если мобильный телефон все еще подключен к развертывающему ПК [через USB]?

Ответы [ 8 ]

3 голосов
/ 30 сентября 2009

На телефонах Symbian (Nokia, Sony-Ericsson, Motorola, Samsung, Panasonic, Siemens, проверьте платформы Series60, Series80, Series90 или UIQ), вы можете получить как System.out, так и System.err. Самое главное, вы также можете получить Throwable.printStackTrace ().

Ранние версии ОС Symbian поставлялись с собственным инструментом Redirector. В конечном итоге он стал доступен и сторонним разработчикам мидлетов. Это может быть трудно найти в наши дни, но может быть переработано с использованием кода C ++, который включается в реализацию Symbian стандартной библиотеки C, которую использует виртуальная машина Java.

Более новые версии ОС Symbian поставляются с дополнительным протоколом GCF, который позволяет извлекать System.out, System.err и Throwable.printStackTrace (), просто используя

javax.microedition.io.Connector.openDataInputStream("redirect://");

Возможно, вам потребуется использовать «redirect: // test» в некоторых версиях Series60 при переходе с виртуальной машины Sun Ltd cldc-hi на виртуальную машину IBM J9.

Соединение необходимо открыть перед запуском мидлета, выход которого вы хотите зарегистрировать, поэтому вам нужно открыть его в отдельном мидлете.

2 голосов
/ 25 августа 2010

Спасибо за ваш ответ QuickRecipesOnSymbian.

В следующей статье вы найдете соответствующий мидлет J2ME для отображения стандартной ошибки / вывода на телефонах Symbian:

http://wiki.forum.nokia.com/index.php/How_to_get_System.out_output_from_a_MIDlet_and_save_it_to_a_file_in_S60_devices

Решение отлично работает и на Samsung i8910. (Поскольку я новичок на этом сайте, я не смог опубликовать более одной ссылки, поэтому вам нужно найти zip с источниками и банкой в ​​конце статьи.)

2 голосов
/ 24 сентября 2008

Я нашел этот вопрос с ответами на вход в систему j2me. Может быть, можно попробовать это, если ничего не работает. Хотя простой способ доступа к System.out.println() был бы неплох.

1 голос
/ 27 сентября 2008

Простой ответ: нигде их не видно. Он где-то печатает (так как множество телефонов замедляется, если у вас много отпечатков), но на большинстве телефонов нет доступа к нему.

Некоторые устройства отображают вывод консоли, например Sony Ericssons, который показывает все, если привязан и работает программа отладки на устройстве. Вы можете узнать, кто это делает, а кто нет, выполняя поиск сайтов разработчиков (если они существуют) различных производителей.

Лучше всего написать небольшой метод, который добавляет к StringBuffer в вашей программе. Затем сопоставьте нажатие клавиши, которая отобразит содержимое StringBuffer на экране. Это неоценимо для поиска тех неприятных проблем с устройством.

0 голосов
/ 30 апреля 2009

Например, устройства BlackBerry J2ME могут быть подключены к компьютеру, а отладчик - к этому устройству. После запуска программы на реальном устройстве ваш System.out OutputStream переходит на консоль отладчика.

0 голосов
/ 13 января 2009

Вход на устройства всегда является проблемой с J2ME, потому что для него нет стандартной реализации. Я могу обратиться к вам по номеру GEAR . Это графическая структура J2ME, которая также реализует консоль отладки "в устройстве", где вы можете печатать свои строки и отображать их на экране.

0 голосов
/ 05 октября 2008

Вы также должны обязательно включить println в свой производственный код.

Я видел некоторые телефоны, у которых при этом была утечка памяти (например, Sanyo 8400 на Sprint.

0 голосов
/ 24 сентября 2008

Единственное, что я могу предложить, это то, что это будет сильно отличаться на каждой платформе. Я работаю в основном с BlackBerrys и System.err идет в журнал событий устройств, но я не знаю, куда идет System.out.

...