在MIDP2.0中调用平台服务

 在MIDP2.0中提供了非常重要的一项功能:调用外部平台的服务,比如从网络开始下载和安装一个MIDlet套件、发起话音呼叫。如果你做了一个通信录,那么就可以直接调用电话服务来呼叫一个号码。在MIDP2.0中可以通过MIDlet.platformRequest()方法实现上面的功能。

        参考一下javax.microedition.midlet.MIDlet.platformRequest()的java doc,你可以发现他只有一个参数为String类型的URL,当你调用他的时候,他会把这个URL传递给应用管理软件。应用管理软件来判断这个参数是否合理,是否存在相关的服务可以使用。如果服务可用并且需要MIDlet首先退出才能执行调用的服务的话,那么方法会返回一个boolean类型的true。如果服务并不存在的话会抛出ConnectionNotFoundExcepton。

        在MIDP2.0的规范中,定义了两种服务类型:
1:如果URL的指向是一个jar文件或者jad文件,例如http://www.j2medev.com/hello.jad,那么平台会启动一个正常的安装进程来安装。
2:如果URL是以tel:开始的,例如tel:01062289873,那么参数会传递给电话服务程序去发起一个话音呼叫,被呼叫方就是后面的电话号码。
设备制造商可以自由的实现其他的平台服务,例如调用web浏览器浏览网页等等。我们必须清楚这个方法并不是堵塞的方法。

        在WTK2.1中提供了对这个方法的支持,你只需要配置一下就可以了。假设你的WTK的安装目录为WTK_HOME,那么进入WTK_HOME/lib,编辑system.config文件,在里面加上一句:com.sun.midp.midlet.platformRequestCommand: "C:\Program Files\MYIE2\MyIE.exe"。注意一定要
把这句话写在一行内,不要换行。这样当我们把类似这样的URL,http://www.j2medev.com传给platformRequest()的时候,系统就会启动MyIE去打开www.j2medev.com的主页。由于我的手机不能支持MIDP2.0所以不能测试电话呼叫,MIDlet下载等平台服务,如果你的可以的话可以编写代码测试一下。下面是我编写的代码在模拟器中进行了测试,当用户按下invoke按钮的时候,MyIE正常打开http://www.j2medev.com。

package com.j2medev.mingjava;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.io.ConnectionNotFoundException;
import javax.microedition.lcdui.*;


public class PlatformTest extends MIDlet implements CommandListener
{
    private Display display;
    private Form mainForm;
    public static final Command getCommand = new Command("Invoke",Command.ITEM,1);
    public static final String URL = "http://www.j2medev.com";
    
    protected void startApp() throws MIDletStateChangeException
    {
        
        display = Display.getDisplay(this);
        mainForm = new Form("Platform Test");
        mainForm.append("Click the button \"invoke\"");
        mainForm.addCommand(getCommand);
        mainForm.setCommandListener(this);
        display.setCurrent(mainForm);

    }


    protected void pauseApp()
    {
       

    }


    protected void destroyApp(boolean arg0) throws MIDletStateChangeException
    {
    }
   
    public void commandAction(Command cmd,Displayable disp)
    {
        if(cmd == getCommand)
        {
            try
            {
                boolean flag = platformRequest(URL);
                System.out.println(flag);
       
            }
            catch(ConnectionNotFoundException e)
            {
                e.printStackTrace();
            }
        }
    }

}

J2ME MIDP 无线设备编程实战指南 本文还有配套的精品资源,点击获取 简介:《J2ME MIDP 无线设备编程实战指南》是一本专为资源受限的移动设备编程而设计的专业书籍。它涵盖了 J2ME 和 MIDP 的基础知识,包括 MIDP API、无线通信、应用程序结构、图形与多媒体、存储管理、性能优化、实战项目、调试与测试等核心内容。通过学习本指南,开发者将掌握在无线设备上创建高效、功能丰富的 Java 应用程序的... 阅读详情

相关推荐

STC32G电调调试血泪史:从TPH1R403NL MOS管烧毁到PWM信号异常排查全记录

本文详细记录了STC32G无刷电调调试过程中的常见问题与解决方案,包括MOS管烧毁、PWM信号异常等关键故障排查。通过电源系统检测、驱动电路验证及三相平衡调试等实战经验,帮助硬件爱好者快速定位问题,提升电调调试效率。特别针对TPH1R403NL等MOS管的保护措施进行了重点分析。

weixin_33736048的博客 551

Invoking Platform Services in MIDP 2.0

ArticleInvoking Platform Services in MIDP 2.0  

Legion.Tao(http://t.sina.com.cn/dastantao) 760

ACC自适应巡航功能

自适应巡航功能(Adaptive Cruise Control)通过传感器检测车辆前方形式环境,控制自车行驶速度以达到定速巡航、跟车巡航、跟车启停,并支持超车辅助等功能。1. 定速巡航一般可设置车辆在30~150km/h的定速范围内巡航2. 跟车巡航车速0~150km/h范围内的跟车巡航3. 跟车启停30s内:自车随之起步,驾驶员无需操作30s~600s内:驾驶员按钮激活 或 轻踩加速踏板激活起步600s后:ACC退出激活状态进入待激活状态,电子驻车制动EPB会自动启动4. 超车辅助。

LXY_LXY_的博客 1387

MIDP v2.0规范简介

二 J2ME 架构:Java自1995年发明以来以发生了很大的变化,从最早的为基于溜览器中运行的Applet的编程,到Servlet/EJB的Server编程,再到现在的MIDlet为无线信息设备的编程。它已发展成为为开发者提供一端到端编程开发的平台,即我们常说的 J2SE/J2EE/J2ME,Java的三个平台(fig1)。由于无线编程有其完全不同于传统编程的特殊性,比如:运行设备的多样性,

mobilechannel的专栏 2066

STM32 SAI接口TDM模式实战:8通道音频采集系统搭建全流程(附DMA配置代码)

本文详细介绍了基于STM32 SAI接口TDM模式搭建8通道音频采集系统的全流程。内容涵盖硬件连接设计、CubeMX时钟树与SAI外设的详细配置,并重点解析了TDM模式的核心代码实现与DMA双缓冲机制,提供了完整的配置代码和常见时序问题排查指南,助力开发者高效实现多通道音频传输与处理。

weixin_29192211的博客 505

解决linux 2.5G网卡驱动问题

解决linux 2.5G网卡驱动问题 关键词:2.5G网卡驱动,ubuntu,安装,2.5G Ethernet LINUX driver,Realtek网卡驱动 由于2.5G网卡较新,各linux发行版的通用驱动已不适用,新装的系统会出现无法上网问题,由于国内网络环境去Realtek官网很难下载到驱动文件,故本文提供github上的2.5G Ethernet LINUX driver r8125 for kernel up to 5.6的版本驱动文件r8125-9.003.05.tar.bz2各位可以自

poorguy_aos的博客 1万+

MIDP2.0 Game API简介

MIDP 2.0 为移动开发者带来几项新特性,比如支持媒体、更好的用户界面、新的连通协议、enabled push、空中下载和更好的安全性。然而一个最让人感兴趣的新特性就是GAME API。这篇文章重点介绍GAME API里的新类和它们的用法,开发环境使用J2ME Wireless Toolkit 2.0 Beta。The Game APIThe Game API 帮助开发者(游戏开发者或其他想得

冷枫@优快云 2936

汽车Bootloader流程

根据ISO14229-1 写的汽车行业 Bootloader流程 1:编程前 → 先读取软硬件版本号 22 F1 XX 软件信息 22 F1 XX 硬件信息 → 进入扩展会话extend diagnostic sessions 功能寻址 10 03 → 编程条件检测routine control:ECU升级条件的判断,如车速,检测车的型号 31 01 02 03 → 关闭DTC检测,(由于很多节点收不到其它节点的报文后会记录DTC故障)功能寻址 85 02 → 关闭诊断通讯(禁止各个节点的应用报...

weixin_41320142的博客 2834

JAVA MIDP_Java MIDP 2.1和JAVA MIDP 2.0有什么区别?

展开全部MIDP 2.1 新特性在经历了N长时间的等待之后,MIDP 2.1终于诞生并应用于实际的机型中,对于MIDP2.0的升级版本,我们没有看到太多62616964757a686964616fe4b893e5b19e31333262373236的功能推进,而是看到了将MIDP2.0中的许多特性进行了强制化的规定,从而更加的标准性,在兼容MIDP2.0的同时,对于许多组件的规格和性能作出了明确的...

weixin_39642761的博客 486

保姆级教程:手把手教你用CANoe/CANalyzer读取汽车故障码(UDS 0x19服务实战)

本文提供了一份详细的CANoe/CANalyzer使用教程,指导如何通过UDS 0x19服务读取汽车故障码。从硬件配置到报文构建,再到故障码解析,手把手教你完成汽车诊断全流程,特别适合汽车电子工程师和诊断开发人员。

weixin_42524945的博客 263

056:vue+openlayers 风场快速移动效果(图文代码)

本示例的目的是介绍演示如何在vue+openlayers中使用wind插件来实现风场快速移动的效果。

大剑师兰特的GIS世界 1583

MIDP2.0仕样探索之一

MIDP-Mobile Infomation Device Profile(移动信息设备简表)MIDP2.0 也就是JSR-118(Java Specification Request)第一章概述MIDP2.0文档有以下几个部分构成:JavaDoc API OTA User Initiated Provisioning Specification(主要讲述如何为无线终端配布application)

timeover_Yama的专栏 1795

SAP Fiori Launchpad Tile,UI5 应用,和 PFCG Role 的对应关系

问题:已经看到了SAP Fiori Launchpad上的某个tile,如何反推后台需要配置哪个PFCG Role才能看到该tile? 这个问题是今天一个朋友在微信上问我的。因为我最近忙着学习一个新的SAP产品,所以这个问题也没有时间展开来写,本文就只做概要介绍。 下图是一个Gateway系统上打开的SAP CRM Fiori Launchpad: 如何弄清楚后台用户配置了哪个PFCG Role之后,才能看到Sales Representative(CRM)这个Group下的tile? 既然当前我使用的用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1521

使用JBuilder和WTK2.2搭建MIDP1.0和MIDP2.0开发环境

作者:efei  文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=161我们知道,WTK最新的是2.2版本。我很喜欢使用这个版本,为什么呢? 1、包含了JSR-184 Mobile 3D API for J2ME?,并有一个DEMO,让我们领略了手机3D游戏的风采。 2、默认的模拟器够大,用起来非常的舒服 3、同时包含了M

mobilechannel的专栏 1169

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用JBuilder和WTK2.2搭建MIDP1.0和MIDP2.0开发环境(转)

我们知道,WTK最新的是2.2版本。我很喜欢使用这个版本,为什么呢? 1、包含了JSR-184 Mobile 3D API for J2ME?,并有一个DEMO,让我们领略了手机3D游戏的风采。 2、默认的模拟器够大,用起来非常...

cuankuangzhong6373的博客 197

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

JAVA MIDP_Java MIDP2.1和JAVA MIDP2.0的本质区别是什么啊?

展开全部9月12日MIDP 2.1 新特62616964757a686964616fe4b893e5b19e31333239303135性在经历了N长时间的等待之后,MIDP 2.1终于诞生并应用于实际的机型中,对于MIDP2.0的升级版本,我们没有看到太多的功能推进,而是看到了将MIDP2.0中的许多特性进行了强制化的规定,从而更加的标准性,在兼容MIDP2.0的同时,对于许多组件的规格和性能作...

weixin_31256263的博客 307

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

J2ME中文教程 8 MIDP 2 安全体系

作者:mingjava  文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=271本章将主要介绍MIDP的安全体系模型,并将结合一个具体的实例来讲述MIDP2.0安全模型的主要概念。 8.1    引入全新安全体系的原因J2ME平台的主要优势之一是平台的开放性,这使得任何人都能够编写可以运行在MIDP设备上的软件。可以从网络

mobilechannel的专栏 1172

MIDP2.0中Alert的新特性

作者:mingjava   文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=103Alert类继承自Screen,它的作用是通知用户发生异常信息。在高级用户界面API中有三个类是不能有父容器的,他们必须要占据屏幕,其中一个就是Alert,另外两个是List和TextBox。在MIDP1.0中,Alert的灵活性比较差,表示

mobilechannel的专栏 750

J2ME MIDP2.0实现简单触摸屏事件

今天好好研究了一下MIDP2.0触摸屏的实现方法,把心得记下来,虽然还没有真机测试,不过模拟器上可以正常使用已经感觉是一个进步了~~呵呵~~首先,设置模拟器:在你的WTK目录下的/WTK22/wtklib/devices/DefaultColorPhone/DefaultColorPhone.properties   的文件中有一行touch_screen=false,把它改成true就可以了

goodegg5519的专栏 2791

[译]用MIDP 2.0 实现图片渐入渐出效果

May 2004用MIDP 2.0 实现图片渐入渐出效果原文出处:http://developer.sonyericsson.com/site/global/techsupport/tipstrickscode/java/p_java_0501.jsp 译者: clapton_xpAThotmailDOTcom2004 年 8 月 本文介绍如何通过改变图像的alpha值使其

blog://clapton/ 5905
上一篇: Android的Message Queue
下一篇: 可怜的钱包
sky_code
博客等级 码龄20年 0粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值