Можно ли создать Java-приложение, которое будет работать как фоновый процесс на смартфонах Symbian?
Приложение Symbian как фоновый процесс
Ответы (2)
Вы можете аппроксимировать это, но J2ME (версия Java для мобильных телефонов) может быть не подходящей технологией для этого.
запуск мидлета (приложения Java для мобильных телефонов) при включенном телефоне в лучшем случае сложен без программирования небольшого модуля Symbian OS C++, который запустит его за вас. Если вы все равно хотите попробовать, посмотрите класс PushRegistry в спецификациях MIDP (http://java.sun.com/javame/reference/apis/jsr118/). API обработки контента также может предоставить способ сделать это (http://java.sun.com/javame/reference/apis/jsr211). Когда вы будете готовы сдаться, сделайте это на C++.
Создать фон для мидлета несложно. Клавиша «меню» телефона сделает это за вас. Программно Canvas.setCurrent(null) имеет хорошие шансы на работу. Попытка обмануть телефон, предоставив полностью прозрачный графический интерфейс и не обрабатывая какие-либо действия с клавиатурой, абсолютно не сработает. Создание и запуск отдельного потока в мидлете должно позволить вам поддерживать работу даже после того, как ваша перегрузка MIDlet.pauseApp() была вызвана системой управления приложениями.
Настоящая проблема заключается в том, что мидлет не будет иметь системы межпроцессного взаимодействия, если вы ее не создадите. Обычный способ сделать это - соединение с сокетом обратной петли, по которому вы передаете данные. Не очень хороший и эффективный способ имитации IPC. Совместное использование записи RMS может быть выполнено только из одного и того же набора мидлетов (я думаю, вы можете упаковать несколько мидлетов в один и тот же файл .jar). Код для создания потока данных поставщика/потребителя по файловому соединению еще более уродлив и вызовет проблемы с безопасностью.
Без какой-либо дополнительной информации о том, для чего вы хотите его использовать, мой ответ: возможно, но вам, вероятно, не стоит пытаться.
У вас будет встроенная поддержка MIDP для фоновых мидлетов в MIDP 3.0 (http://jcp.org/en/jsr/detail?id=271). Однако не ждите появления устройств — может быть, это произойдет через некоторое время. (Обратите внимание, что некоторые устройства с ОС Symbian имеют не только MIDP — например, SE p990, https://developer.sonyericsson.com/site/global/products/phonegallery/p990/p_p990.jsp).
Как уже отмечалось, может быть полезно иметь больше информации о том, какую функциональность продукта вы пытаетесь внедрить — часто это более чем один способ содрать шкуру с кошки.