我正在编写一个 Java ME 应用程序,它将使用消息传递等特权操作。默认情况下,系统会提示用户确认这些操作中的每一个,但我想将其作为后台服务运行。
文档说要在 jad 文件中请求权限,我已经这样做了,并且假定它可以在设备上运行。不过,我想先在 Netbeans 移动模拟器上对此进行测试。
我尝试将应用签名为“受信任”,但我的模拟执行仍然提示用户获得许可。
最佳答案
MIDP 安全模型需要分两部分来解释:
手机(或模拟器)包含安全策略。
安全策略由多个域组成。
每个域都定义了功能组和根证书。
功能组决定哪些保护选项(自动同意、用户始终同意、用户同意一次...)在 protected API(即消息传递)的域中可用。
适用于您的 MIDlet 的域取决于哪个根证书信任您用来签署 MIDlet 的证书。
您的问题是,您认为在您认为您的 MIDlet 也属于的域中您想要的 API 的保护选项与仿真器安全策略中实际定义的内容不匹配。
编辑:
基于 WTK 的模拟器的操作方法:
${netbeans_installation_folder}\mobility8\WTK2.5.2\j2mewtk_template\appdb\
文件夹中有 3 个 _policy.txt*
文件。
它们每个都包含一个“别名”定义列表和一个“域”定义列表。
使每个域都具有与“最大”域相同的内容。
在此之后,您的模拟器将不再请求任何用户许可。
如果您已经使用过 Netbeans 中包含的模拟器,您可能希望对 ${netbeans_installation_folder}\mobility8\WTK2.5.2\appdb\
文件夹进行相同的更改。
关于java - netbeans 移动性中的特权操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1710423/