2013-02-19 2 views
1

ниже код работает:J2ME Sms Отправить разрешения для n85 для подавления предупреждений безопасности

import javax.microedition.io.*; 
import javax.microedition.lcdui.*; 
import javax.microedition.midlet.MIDlet; 
import javax.wireless.messaging.*; 
/** 
* @author Panda 
*/ 
public class Midlet extends MIDlet implements CommandListener { 
     Display display; 
     private TextField toWhom; 
     private TextField message; 
     private Alert alert; 
     private Command send,exit; 
     MessageConnection clientConn; 
     private Form compose; 
     TextMessage textmessage; 

     public void startApp() { 
      display=Display.getDisplay(this); 
      compose=new Form("Compose Message"); 
      toWhom=new TextField("To","",10,TextField.PHONENUMBER); 
      message=new TextField("Message","",600,TextField.ANY); 
      send=new Command("Send",Command.BACK,0); 
      exit=new Command("Exit",Command.SCREEN,5); 
      compose.append(toWhom); 
      compose.append(message); 
      compose.addCommand(send); 
      compose.addCommand(exit); 
      compose.setCommandListener(this); 
      display.setCurrent(compose); 
     } 
     public void pauseApp() { 
     } 
     public void destroyApp(boolean unconditional) { 
      notifyDestroyed(); 
     } 
     public void commandAction(Command cmd,Displayable disp) { 
      if(cmd==exit) { 
        destroyApp(false); 
      } 
      if(cmd==send) { 
        String mno=toWhom.getString(); 
        String msg=message.getString(); 
        if(mno.equals("")) { 
         alert = new Alert("Alert"); 
         alert.setString("Enter Mobile Number!!!"); 
         alert.setTimeout(2000); 
         display.setCurrent(alert); 
        } 
        else { 
         try { 
           clientConn=(MessageConnection)Connector.open("sms://"+mno); 
         } 
         catch(Exception e) { 
           alert = new Alert("Alert"); 
           alert.setString("Unable to connect to Station because of network problem"); 
           alert.setTimeout(2000); 
           display.setCurrent(alert); 
         } 
         try { 
           textmessage = (TextMessage) clientConn.newMessage(MessageConnection.TEXT_MESSAGE); 
           textmessage.setAddress("sms://"+mno); 
           textmessage.setPayloadText(msg); 
           clientConn.send(textmessage);        
         } 
         catch(Exception e) 
         { 
           alert=new Alert("Alert","",null,AlertType.INFO); 
           alert.setTimeout(Alert.FOREVER); 
           alert.setString(e.getMessage()); 
           display.setCurrent(alert); 
         } 
        } 
      } 
     } 
} 

Я могу отправлять текстовые сообщения, используя этот мидлет, но единственная проблема в том, что мой телефон Nokia n85 обыкновение позвольте мне послать сообщение без меня, нажимая OK, см. предупреждение о отправке sms. Чего я хочу достичь, так это возможность обойти эту меру безопасности программно, давая приложению более высокие привилегии? Как мне это сделать? Я просто не хочу, чтобы это уведомление о безопасности появлялось в следующий раз, когда я нажимаю кнопку отправки. Я попытался установить разрешение API в Netbeans для JAD и добавил эти:

javax.microedition.io.Connector.sms 
javax.wireless.messaging.sms.send 

Но этого не достаточно, чтобы обойти его. Любые идеи кто-нибудь? И я не хочу использовать QT, поэтому, пожалуйста, не предлагайте его здесь!

ответ

0

Единственный официальный способ избавиться от всплывающих окон безопасности - подписать ваш мидлет с помощью сертификата от Thawte или Verisign. Такой сертификат будет стоить вам 299 долларов в год. Конечно, инди-разработчик не может позволить себе платить эту сумму, особенно если его приложения в основном для себя.

Для этого люди изобрели неофициальные способы избавиться от них.

Для телефонов с поддержкой Sony Ericsson вы можете применить патч на отдельном телефоне, чтобы удалить всплывающие окна всплывающих окон. Я сделал это несколько раз, и это потрясающе! Наконец, я могу создавать полезные приложения, потому что ничто не мешает им работать.

Недостатком является то, что он, очевидно, не поможет всем вашим клиентам. Если у вас есть куча клиентов, вы не сможете избежать подписания.

Но если вы заказываете небольшие приложения в основном для себя, тогда исправление может быть очень облегчающим снятие напряжения. :-)

Я не знаю, как исправлять другие марки телефонов. Поэтому я недавно задал этот вопрос здесь, на stackoverflow.com. Но мой вопрос был закрыт. По-видимому, администраторы не считают это актуальным. Я попытался объяснить, почему я думал, что это имеет отношение к «инструментам, используемым разработчиками», но затем они удалили сообщение.

+0

Спасибо за ваш ответ mr_lou, Было очень полезно! – KopetePanda

+0

Мне пришлось использовать QT в конце концов .. Java имеет слишком много ограничений !! – KopetePanda

+0

Очень верно. И это определенно одна из причин, почему разработчики быстро приняли Android и оставили JavaME. –

Смежные вопросы