Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Цитата(imezys @  9.4.2009,  10:13 Найти цитируемый пост)
И копироваться мидлет будет по блютусу или ИК.


Тут существует, я считаю, очень большой вопрос - а что именно будет копироваться? Как я представлю себе существует три варианта: 

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 вариант: первый как сказал передавали ссылку, а второй передавали агента)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)