Symbian 启动J2ME的应用程序

本文介绍了一种在Symbian系统中通过UID启动J2ME应用程序的方法,并提供了具体的实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Symbian 启动J2ME的应用程序

在Symbian下启动J2ME的应用程序一直是大家热烈讨论的问题.
因为J2ME在S60上变态的安装过程.以及J2ME莫名其妙的标识全球唯一的特性.
使本应该简单的问题变态了.

在S60上应用程序是通过UID来作为全球唯一标识的.
这样带来的好处是什么呢.我们可以通个UID很快定位到我们需要的程序.
并且在安装的过程中,安装程序也原样使用了UID.
但是在安装J2ME的时候.安装程序会给J2ME随机分配一个UID.
老天保佑的事.这个UID在本机上是唯一的.

即然这个UID是唯一那我们能不能通过这个UID去启动程序呢.
这么美好的想法我们试试吧.

#include <APGCLI.H>

void CLaunchJ2METestAppUi::GetAllApp()
    {
        
        TApaAppInfo appInfo;
        RApaLsSession apaSession;
        User::LeaveIfError( apaSession.Connect() );
        CleanupClosePushL( apaSession );
        User::LeaveIfError( apaSession.GetAllApps() );

        //枚举所有的应用程序
        while ( apaSession.GetNextApp( appInfo ) == KErrNone )
        {
#ifdef __SERIES60_30__
            //第三版上判断JAVA应用程序的办法
            if(appInfo.iFullName.Right(8).CompareF(_L(".fakeapp")) == 0)
            {
            //查找所有的JAR的应用程序.
            //JAR的应用都是以.fakeapp后缀结尾
            if(appInfo.iCaption.FindF(_L("/x8D2A/x98DF/x86C7")) != -1)
                {
            //查找需要启动的应用程序的名字,取得对应的ID
                iMIDlet = appInfo.iUid;
                break;
                }            
            }
#else
            //第二版上判断JAVA应用程序的办法
            if(appInfo.iFullName.FindF(appInfo.iUid.Name()) != -1)
             {
             iMIDlet = appInfo.iUid;
             break;
             }
#endif
        }
        
        TThreadId threadId;
        //用UID启动应用程序
        TInt err = apaSession.StartDocument(_L(""), iMIDlet, threadId);
        CleanupStack::PopAndDestroy(); // close apaSession
    }

以上代码在N95,6120,5320,N70上测试通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值