Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непереносной мидлет 
:(
    Опции темы
Ivanj2me
Дата 2.3.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.3.2009

Репутация: нет
Всего: нет



Привет всем....у меня такой вопросик.....мне нужно сделать midlet который бы шел только на том телефоне на котором он был устоновлен...для этого я генерирую код, записываю его на сервере в базу и в момент когда он заходит в мидлет делается запрос на сервер и проверяю если  код есть в базе...проблема в том что если я возьму и через bluetooth перекопирую его на другой тел он считывает данные с rms без проблем, даже если засетирована AUTHMODE_PRIVATE smile , и работает без проблем...как быть? Eсли бы была какая-то зацепка за телефон, к примеру phisical adress или IMEI...но ведь нету к ним доступа  с неподписоного мидлета...помогите...спасибо
PM MAIL   Вверх
gosnis
Дата 2.3.2009, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 16.5.2007
Где: Тель Авив, Израил ь

Репутация: 1
Всего: 2



Не очень понял, что ты написал насчет RMS и что такое AUTHMODE_PRIVATE. Идея у меня такая. В аппликации записывается идентификационный номер. При первом запуске программы, идет авторизация на сервере и после успешного ее прохода, записывается соответствующий флаг в RMS. Любой запуск аппликации возможен будет только при наличии такого флага или, при его отсутствии, авторизации на сервере. Перенеся авторизированую и работающую аппликацию на другой телефон, получится ситуация, что аппликация не найдет флага в RMS и пойдет на сервер. Сервер ее не авторизирует (так как она уже прошла один раз авторизацию) и аппликация не будет работать. Вот такая вот задумка. Критикуйте smile
PM MAIL ICQ Skype MSN   Вверх
hamsterKSU
Дата 3.3.2009, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



rms - это память на телефоне. если ты перекидываешь jar на другой телефон то rms на тот телефон по блютуз вслед за джарником не пойдет. 
либо у тебя что то в логике программы не так либо ты не правильно описываешь проблему
PM MAIL ICQ   Вверх
eugine_s
Дата 3.3.2009, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



hamsterKSU прав.

Есть два состояния мидлета: 

1) не установлен (т.е. где-то в файловой системе лежит файлик xxx.jar) 
2) установлен (т.е. в Меню-Игры (или приложения) появляется иконка игры)

Так вот, если вариант 2 - то тут уже мидлет можно запускать, записывать данные в RMS.. вообще можно все делать что подразумевает мидлет. НО вариант 2 нельзя перекинуть по блютулз! 
Вариант 1 - это не установленный мидлет, поэтому его можно только установить (и если телефон позволяет перекинуть по Блютулз). НО у варианта 1 нет записей RMS.

Вывод: ошибка в логике программы.
PM MAIL   Вверх
Ivanj2me
Дата 3.3.2009, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.3.2009

Репутация: нет
Всего: нет



Привет...или я что-то не так делаю с rms, но на серий s40(в моём случий тестировал на nokia 6280)..всё банально просто..у меня есть мидлет, он при первом запуске создаёт один rms,  при втором он с него считывает данные, я через bluetooth перекидываю на мой телефон мидлет и запускаю jar, при запуске он его просто запускает без того чтобы спасить меня хочу ли я его устоновить. Так вот он запускается, создаёт rms..потом через тот же bluetooth я захожу в ту же папку где мне показывает и файл с разширением .rms...я всё беру и копирую на другую nokia (на других марках не пробовал), и запускаю midlet, который спокойно считывает данные с того же rms....тойсть rms  не пригодно для хранения серийного кода софта...с AUTHMODE_PRIVATE толку мало...ведь на другом телефоне я использовал тот же мидлет...будут какие варианты? всем спасибо!




public static RecordStore openRecordStore(String recordStoreName, boolean createIfNecessary, int authmode, boolean writable) throws RecordStoreException, RecordStoreFullException, RecordStoreNotFoundException
Open (and possibly create) a record store that can be shared with other MIDlet suites. The RecordStore is owned by the current MIDlet suite. The authorization mode is set when the record store is created, as follows:
AUTHMODE_PRIVATE - Only allows the MIDlet suite that created the RecordStore to access it. This case behaves identically to openRecordStore(recordStoreName, createIfNecessary).
AUTHMODE_ANY - Allows any MIDlet to access the RecordStore. Note that this makes your recordStore accessible by any other MIDlet on the device. This could have privacy and security issues depending on the data being shared. Please use carefully.
The owning MIDlet suite may always access the RecordStore and always has access to write and update the store.
If this method is called by a MIDlet when the record store is already open by a MIDlet in the MIDlet suite, this method returns a reference to the same RecordStore object.

Parameters:
recordStoreName - the MIDlet suite unique name for the record store, consisting of between one and 32 Unicode characters inclusive.
createIfNecessary - if true, the record store will be created if necessary
authmode - the mode under which to check or create access. Must be one of AUTHMODE_PRIVATE or AUTHMODE_ANY. This argument is ignored if the RecordStore exists.
writable - true if the RecordStore is to be writable by other MIDlet suites that are granted access. This argument is ignored if the RecordStore exists.
Returns:
RecordStore object for the record store
Throws:
RecordStoreException - if a record store-related exception occurred
RecordStoreNotFoundException - if the record store could not be found
RecordStoreFullException - if the operation cannot be completed because the record store is full
IllegalArgumentException - if authmode or recordStoreName is invalid
Since:
MIDP 2.0
PM MAIL   Вверх
gosnis
Дата 3.3.2009, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 16.5.2007
Где: Тель Авив, Израил ь

Репутация: 1
Всего: 2



Ivanj2me, у меня тоже аппарат серии 40 (6300). Только что полазил по нему и не нашел ни только rms файлов, но и самих аппликаций. Так что ничего скопировать не смог. Ты можешь описать подробней чем и как ты это делаешь?
PM MAIL ICQ Skype MSN   Вверх
Ivanj2me
Дата 3.3.2009, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.3.2009

Репутация: нет
Всего: нет



странно конечно,дома у меня установлен bluesoleil, на работе nokia suite....и первый и второй показывают и аппликацию и .rms...и позволяют их копировать.....жду мнений...большое спасибо
PM MAIL   Вверх
hamsterKSU
Дата 3.3.2009, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 7
Всего: 11



ну если ты перекидываешь сам файлик RMS то тогда все понятно. 
Тут уже  RMS никак не защитить.

Вот тут нашел несколько свойств для RMS:
Other Operations
A few other RMS operations remain, all of them methods of the RecordStore class: 
getLastModified() returns the time of the last modification to the record store, in the same format returned by System.currentTimeMillis(). 
getVersion() returns the version number of the record store. The version number is a positive integer greater than zero that is incremented each time the record store is changed.

Я ими не пользовалься, но может можно посматреть какую дату вернет - getLastModified(); на одном телефоне и после копирования на другом.
Если будут разные то можно тогда после авторизации на сервере записывать текущее время в RMS и по идее оно может совпадать с датой модификации.
тогда ты будешь проверять не только флаг но и дату.

Но если это не поможет то знач надо привязываться к каким-то дынным телефона(IMEI например) - вот тока проблема в том что их уже почти ни на каких телефонах не получить из Java


PM MAIL ICQ   Вверх
Ivanj2me
Дата 3.3.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.3.2009

Репутация: нет
Всего: нет



идея замечательная, и  не раз смотрел на эти методы...большое Вам спасибо...уже протестировал...но из проблемы вышла другая..а что если он по каким либо причинам узер решит её скопировать в другой фолдер smile...в любом случий благадарю...буду старатся активно участвовать в форуме...хорошая это вещь...раньше не пробовал
PM MAIL   Вверх
eugine_s
Дата 3.3.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(Ivanj2me @  3.3.2009,  14:22 Найти цитируемый пост)
если он по каким либо причинам узер решит её скопировать в другой фолдер


Что скопировать? RMS чтоли? 

Я бы сказал что ты куда-то не туда движешься в своих разработках, так как не правдоподобно выглядит две вещи: 
1) передача установленного мидлета
2) передача rms 

Эти две вещи не должны передаваться. Установленные мидлеты пользователь не будет иметь возможности передать, тем более RMS привязанную к этому мидлету передать - что-то невероятное.

Или ты что-то не так делаешь, или у каким-то ПО у тебя непорядки (или софт телефона, или ПО на компе или еще что-то).

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

Может ты устанавливаешь мидлет на карту памяти и через PC Suite ты смотришь не Уставнока программ а просто Файловую систему? 
PM MAIL   Вверх
Ivanj2me
Дата 3.3.2009, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.3.2009

Репутация: нет
Всего: нет



ну не знаю...я говорю вам с чем я столкнулся, какой смысл мне вам расказывать какие-то фэнтэзи...значит так , я создаю мидлет...копирую его в любую дирикторию на телефоне...у меня nokia 6280...запускаю его...просто нажимаю на него...в случий копирования через bluetooth он его не устонавливает а просто запускает, создоётся rms,там же в том же фолдоре..после чего тупа копирую их на другой тел, я попробовал на 6233, и там запускаю скопированный мидлет и он без всяких проблем считывает данные с rms...установи себе последнию nokia suite и попробуй у себя...хотя зависет от твоего тел....это была моя проблемка...и реальная проблемка...и тем кто сохраняет свой коды в rms и потом по ним проверяет авторизированный ли узер или нет, я бы посоветовал проверить это...удачи
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.