首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

关于HttpConnection报java.lang.SecurityException的问题-Moto V300用的模拟器是EmulatorA.1

2014-01-26 
Moto V300 用的模拟器是 EmulatorA.1用手机的浏览器是可以访问,但程序里就是不行!是否要做哪些设置啊?请问

Moto V300 用的模拟器是 EmulatorA.1
  用手机的浏览器是可以访问,但程序里就是不行!是否要做哪些设置啊?
  请问主要是由于哪些原因才会出现java.lang.SecurityException   ?
  手机能设置访问级别吗?     

------解决方法--------------------------------------------------------
根据规范,MIDlet只能由应用程序管理器产生.我们不能自己在程序里面new出其它的MIDlet,并调用其生命周期相关的函数(startApp(),pauseApp(),destroyApp(),这样做将引发SecurityException.
------解决方法--------------------------------------------------------
MIDP里面提供的安全机制是这样的,MIDlet suite是在一个Domain里面运行的,默认的情况下这个Domain叫做untrusted,所以你在进行联网的时候一般模拟器会提示你MIDlet要进行联网,这个不是免费的 是不是继续?如果你选择this time,ask me next time,那么 或者 always那么这个联网会继续进行的。但是你选择否定的选项的时候,那么他会抛出java.lang.SecurityException,应该就是你说的那个吧。
 
  下面的代码是个联网的例子。你参考以下吧,我在模拟器中没有遇到抛java.lang.SecurityException得问题。
  import java.io.*;
 
  import javax.microedition.io.*;
  import javax.microedition.lcdui.*;
  import javax.microedition.midlet.*;
 
  public class HTTPMIDlet
  extends MIDlet
  implements CommandListener, Runnable {
  private Display mDisplay;
  private Form mMainScreen;
 
  public HTTPMIDlet() {
  mMainScreen = new Form("HTTPMIDlet");
  mMainScreen.append(
  "Press OK to create an HTTP connection.");
 
  Command exitCommand =
  new Command("Exit", Command.EXIT, 0);
  Command okCommand =
  new Command("OK", Command.OK, 0);
  mMainScreen.addCommand(exitCommand);
  mMainScreen.addCommand(okCommand);
  mMainScreen.setCommandListener(this);
  }
 
  public void startApp() {
  if (mDisplay == null)
  mDisplay = Display.getDisplay(this);
 
  mDisplay.setCurrent(mMainScreen);
  }
 
  public void pauseApp() {
  }
 
  public void destroyApp(boolean unconditional) {}
 
  // CommandListener method
 
  public void commandAction(Command c, Displayable s) {
  if (c.getCommandType() == Command.EXIT)
  notifyDestroyed();
  else if (c.getCommandType() == Command.BACK)
  mDisplay.setCurrent(mMainScreen);
  else if (c.getCommandType() == Command.OK) {
  // Put up a wait screen.
  Form waitForm = new Form("Connecting...");         

热点排行