Чтение записи данных в J2me - PullRequest
1 голос
/ 30 декабря 2011

Я пишу одно приложение, которое хранит пользовательские данные в файл.Однако, когда я пытаюсь открыть память телефона, мое приложение вызывает исключение безопасности и не позволяет мне записывать или читать данные.
Вот мой код.

 try
      {
              FileConnection fc = (FileConnection)Connector.open("file:///C:/myfile.dat",Connector.READ_WRITE);
              // If no exception is thrown, the URI is valid but the folder may not exist.
             if (!fc.exists())
             {
                 fc.create();  // create the folder if it doesn't exist
             }
      OutputStream   os=fc.openOutputStream();
      String s="hello how r u..";
      byte[] b=s.getBytes();

      os.write(b);
      os.flush();
             fc.close();
      }
      catch(Exception error )
       {

         Alert alert = new Alert(error.getMessage(), error.toString(), null, null);
         alert.setTimeout(Alert.FOREVER);
         alert.setType(AlertType.ERROR);
         display.setCurrent(alert);

       }

Однако я использовал SDycard для сохранения данныхи работает нормально.Но есть ли какое-либо решение, чтобы выйти из SecurityException, когда я пытаюсь получить доступ к памяти телефона?И когда я сохраняю данные в SDCARD каждый раз, когда появляется одно сообщение с просьбой разрешить приложению читать или записывать данные.Мне также не нужно это быстрое сообщение.
Как выйти из этой ситуации?

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

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

Один URL-адрес того, как подписать ваш мидлет:

http://m -shaheen.blogspot.ком / 2009/07 / 1.html

0 голосов
/ 31 декабря 2011

Согласитесь с @Sethu, что OP происходит из-за подписи мидлета.

ОП подразделяется на логические фазы для решения проблемы:

  1. Проблема / причина: Всякий раз, когда API ограничен (в данном случае JSR 75api) получает доступ к мидлету, которому требуется разрешение для проверки его подлинности, это помогает скрыть вредоносный код.В вашем случае мидлет не подписан (объясняется в # 2, как подписывать), поэтому у него нет необходимых разрешений, поэтому Application Management System запрашивает согласие пользователя на каждую такую ​​чувствительную операцию вашего мидлета.Прочитайте эту ссылку для получения более подробной информации.

  2. Разрешение Это многоэтапный процесс, (a) Получите сертификат, см. thisссылка , (b) Добавьте необходимые разрешения (для чтения: javax.microedition.io.Connector.file.read, для записи: javax.microedition.io.Connector.file.write) в MIDlet-Permissions в файле JAD

  3. Приобретение сертификата Подробное объяснение дано по этой ссылке Подписание Java ME для манекенов

...