(转)Symbian启动J2ME程序

转自Mark哥:http://blog.sina.com.cn/s/blog_5ccfd2d50100h68m.html

 

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 )
      {
         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;
            }         
         }
      }
      
      TThreadId threadId;
      //用UID启动应用程序
      TInt err = apaSession.StartDocument(_L(""), iMIDlet,threadId);
      CleanupStack::PopAndDestroy(); // close apaSession
    }

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

转载于:https://www.cnblogs.com/candyboy/archive/2010/05/03/1726191.html

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值