| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java ME (J2ME) > Счетчик копий в мидлете |
| Автор: imezys 7.4.2009, 22:41 |
| Требуется написать простенькое приложение, а в нем нужен счетчик копий. Чтоб при копировании проги на новый телефон через булетон или ИК он увеличивался на единицу. Например стартует мидлет, проверяет некие настройки в RMS. Ежели их нет, предполагаем что программа запускается в первый раз и увеличиваем этот абстрактный счетчик. Возможно ли сделать такое, без запросов к серверу и куда копать? |
| Автор: math64 8.4.2009, 08:37 |
| Ну сам должен понять - без запросов к "серверу" не обойтись. Причём сервером может служить, например, другой телефон с тем же мидетом, с которым твой мидлет общается по bluetooth |
| Автор: imezys 8.4.2009, 08:57 |
| Понял, спасибо. Конечно не самый простой вариант, но хоть какой-то вариант. После копирования повторно связываться с источником копии... |
| Автор: imezys 8.4.2009, 23:43 |
| Тогда еще вопрос по сабжу: А может ли мидлет найти самого себя в файловой системе телефона и изменить пару байт "в себе" или в своих атрибутах? |
| Автор: W0LF 9.4.2009, 00:31 |
| не может, лучше уже FileConnection юзать и сохранять где-то в файле кол-во копий, но кол-во телефонов, которые держат FileCOnnection намного меньше чем тех, которые могут по http/socket чета отправить |
| Автор: math64 9.4.2009, 07:58 |
| В смартфонах Nokia после установки приложения можно удалить jad и jar и приложение будет работать, причём jad для установки не нужен, а править что-то в jar довольно сложно. Если приложение - игра (или чат) использующая bluetooth или другое средство общения между копиями приложения, они могут дополительно к игрововому трафику обменяться imei или ещё какой-либо уникальной информацией. Допустим, ты разрешил делать 5 копий, но приложение установлено на 6 телефонов. Играют 1 и 2, 3 и 4, 5 и 6 - ok (каждый телефон знает о двух копиях) Играют 2 и 3, 4 и 5 - ok (2, 3, 4, 5 знают о 3 копиях) Играют 3 и 4 - обнаруживется наличие 6 копий. |
| Автор: imezys 9.4.2009, 10:13 |
| Дело в том, что это не игра и не чат. Такое несколько специфичное, но простое по своей сути приложение, кроме вышеописанной заморочки. Распространяется между определенной группой лиц и каждая следующая копия должна «знать» от кого именно она пришла – передаются несколько параметров. А про счетчик я спросил для абстракции, думал мож так проще объяснить. Причем телефоны у этой группы разные, возможно не у всех настроен GPRS . И копироваться мидлет будет по блютусу или ИК. Потому лепить «клиент-сервер»: скопировал – запустил – повторно соединился (по бт или ик) с «родителем» для получения параметров ощутимо всё усложняет. А хранить все в отдельном файле – тогда его тоже придется копировать вместе с мидлетом. Боюсь не каждый из этой группы осилит. Да и как сказано выше FileConnection не самая массовая штука |
| Автор: math64 9.4.2009, 10:27 |
| Тогда только так: при первом запуске либо соединиться с сервером в интернете или послать смс или делать звонок (который после определения номера звонившего отбивается и будет бесплатным) |
| Автор: eugine_s 9.4.2009, 11:24 |
Тут существует, я считаю, очень большой вопрос - а что именно будет копироваться? Как я представлю себе существует три варианта: 1) уставноленный мидлет (это то что подразумевает автор??). Т.е. .jar был установлен, потом мидлет запущен и через Bluetooth/Irda передает себя??? - но такое невозможно. Даже через комп не всегда просто выковырять установленный мидлет. 2) Просто .jar файл. Да, такое возможно, правда не везде (одним нужно будет jad и jar передавать (Samsung), другие просто так не резрешают передавать protected контент (Nokia, контент = .jar,.sisx)). Но что точно - так небудет привязки к клиенту. 3) Вариант 1 можно решить вот так: в ресурсах мидлета паковать .jar-файл - какой-то агент, который будет устанавливаться на клиенте и из инета вытаскивать уже полное приложение. Но опять же - как в jar-e передать идентификатор клиента с которого был отправил этот агент С моей стороны - не все так просто. Поэтому рекомендую задуматься над вот таким решением: перебрасывать не jar, а просто ссылку. Например: у вас есть сайт http://www.mysite.com/ Передаваемая ссылка будет выглядеть таким образом: http://www.mysite.com/some_id - где some_id будет идентификатор клиента. При заходе на сайт, сервер сразу будет понимать кто ссылкой поделился. Так же можно ввести регистрацию - чтобы клиент передавать только "своим". При скачивании мидлета с сайта можно будет в jad прописывать требуемый ID - который и будет служить последней частью URL Я бы так сделал. Точнее даже мы так делали в одном из проектов под Symbian (точнее мы использовали 2 вариант: первый как сказал передавали ссылку, а второй передавали агента) |