Archive for 09月, 2007
比如说,当按下back后,在HandleCommandL()中加入如下处理:
case EAknSoftkeyBack:
{
TApaTask apaTask(iEikonEnv->WsSession());
apaTask.SetWgId(CCoeEnv::Static()->RootWin().Identifier());
apaTask.SendToBackground();
break;
}
解释一下:
A task is a running application.
A task is identified by its association with the running application’s window group.
apaTask把自己送到后台,并在后台继续运行。
Popularity: 6% [?]
09月 20th, 2007
如何写一个Symbian平台的应用,如S60第一二版,S60第三版,UIQ,这是一个框架方面的东西。
下面的代码在symbianvariant.h文件中,是用来跨S60和UIQ平台的
#define __S60__ 300
// #define __UIQ__ 210
这个东西是用来定义SDK的版本的,因为有些资源或其他的东西各SDK还是有差别的,所以代码中用这个宏来确定编译时所需要的资源。
如下面的资源定义:
#if (__S60__ < 300)
items =
{
AVKON_SETTING_ITEM
{
identifier = EBencoolenDlgLocation;
setting_page_resource = r_bencoolen_binary_location_page;
associated_resource = r_bencoolen_binary_location_resource;
name = string_bencoolen_dialog_location;
}
};
#else
items =
{
AVKON_SETTING_ITEM
{
identifier = EBencoolenDlgLocation;
setting_page_resource = r_bencoolen_memory_selection_dialog;
name = string_bencoolen_dialog_location;
}
};
#endif
由于S60和UIQ 的Application,Document和UI是从不同基类继承的。
这么一定义,所有的都能用CSymbianXXX来定义了!但是View是没有办法的,只能写各自不同的文件
#ifdef __S60__
#define CSymbianApplication CAknApplication
#define CSymbianDocument CAknDocument
#define CSymbianAppUi CAknAppUi
#else
#define CSymbianApplication CQikApplication
#define CSymbianDocument CQikDocument
#define CSymbianAppUi CQikAppUi
#endif
在mmp文件中:第一部分是S60和UIQ平台公用的,代码在src目录下;
第二部分是所有S60平台专用的,代码在s60目录下。
UIQ第二部分的代码在uiq目录下。
SOURCEPATH ..\..\src
SOURCE BencoolenApp.cpp
SOURCE BencoolenAppui.cpp
SOURCE BencoolenDocument.cpp
SOURCE BencoolenAppContainer.cpp
SOURCE ScreenShot.cpp
SOURCE ScreenShotData.cpp
SOURCEPATH ..\..\src\s60
SOURCE BencoolenAppView.cpp
SOURCE BencoolenSettingsView.cpp
SOURCE BencoolenSettingsListBox.cpp
SOURCE BencoolenAboutDlg.cpp
Popularity: 6% [?]
09月 20th, 2007
ScreenShot是一个非常不错的开源软件。研究它可以学到哪些东西呢?
1,如何写一个Symbian平台的应用,如S60第一二版,S60第三版,UIQ,这是一个框架方面的东西。
2,具体技术细节上:
如何将程序隐藏到后台执行,同时还能捕获按键事件
如何捕获两个键同时按下。
按下红色结束通话键,程序仍然运行(Symbian9默认关闭程序)。
如何提供选项给用户设置,并保存到ini文件中。
程序结构和编码风格。
3,SymbianSign和程序健壮性方面的技巧,这个软件通过了symbian freeware signing!
4,其他肯定还有很多值得学习的地方,边看边写。
Popularity: 6% [?]
09月 20th, 2007
试验一下,我这个东西实在太简单了,不知道会不会被接受?!
具体方法如下:
1,到www.symbiansigned.com 网站,输入自己的帐号。
2,进入“My Symbian Signed”标签页,并选择左边的“Applications->Submit Freeware”。
3,一共有六步,基本上都是同意一些协议。第三步下载一个sample.zip文件,这里面就是你要提交的模版,主要有:一个sis,一个pkg,还有一个readme。
4,需要在自己提交的sis里面加上一个FreewareWarningEN.txt文件。
具体做法:把文件放在pkg目录下,然后在pkg中加上下面一句话:
“.\FreewareWarningEN.txt”-”",FT
具体内容可以如下:
This application is freeware and may not be sold. If you believe you have paid for this application, please e-mail symbiansigned@symbian.com with the details of where you obtained the product.
5,最后按照上述要求将自己的要提交的东西打包成zip上传即可。
Popularity: 3% [?]
09月 19th, 2007
论坛上好多人提了意见,下载也突破200次了,晚上花了2个钟头,改进的一些地方:

1,由白底黑字改为黑底白字,好像是稍微好看了一点
2,加入3,6,9,12四个整点,增加美观度 
3,星期几加到了日期后面,改为3位统一显示,看起来比较清楚
4,最下面改为”Happy EveryDay :-)”,每天都应该开开心心的嘛,嘿嘿!
本来想去SymbianSign一下,省得别人下载了还要自己去sign!
不过好贵,要186欧元 = 1 940.35621 人民币!
可以考虑去弄个freeware~~~
下一步做得:做一个GUI的设置程序,可以控制一下内容:
a,支持大数字/模拟时钟切换
b,支持黑底白字/白底黑字选择
c,是否显示秒钟(每分钟刷新一次,可以更加省电)
d,设置自己的话,默认为”Happy EveryDay :-)”
e,横向显示/竖向显示
f,看看是否有其他新的要求
Popularity: 5% [?]
09月 19th, 2007
用SISXplorer,这款软件非常不错。再也不用复杂的命令行操作了!
可以查看到很多信息,还可以将sis文件解压出来。
需要安装.net framework 2.0。

Popularity: 4% [?]
09月 19th, 2007
本文参考NewLC的Tutorial,并通过自己创建一个dll工程实现
类需要继承CScreensaverPluginInterfaceDefinition,
并实现MScreensaverPlugin接口的一些虚函数
class CClockScreenSaver :
public CScreensaverPluginInterfaceDefinition
virtual TInt InitializeL(MScreensaverPluginHost *aHost);
virtual TInt Draw(CWindowGc& aGc);
virtual const TDesC16& Name() const;
virtual TInt HandleScreensaverEventL(TScreensaverEvent aEvent,
TAny* aData);
需要一个RSS文件,告诉ECom框架所需要的信息
需要一个ImplementationProxy.cpp文件,
Helps the ECom framework locating the interface implementations
MMP中,TARGETTYPE是PLUGIN , UID 是:0×10009D8D 0×06EF7F58
需要很多Capabilities,所以只能用开发者证书来sign。
pkg文件中dll的位置应该放到sysbin下面
“C:Symbian9.2S60_3rd_FP1Epoc32releaseGCCEURELClockScreenSaver.dll”
-“!:sysbinClockScreenSaver.dll
基本上就这些,总体感觉还是比较简单的。
模拟时钟的关键代码都在Draw函数中。
我这里用到了画圆,画线,TTime,TDateTime,字符串转换等。
最后show一下效果:

Popularity: 5% [?]
09月 18th, 2007
网上下载的软件已经过期了,怎么办?
1,首先移除它的证书:
signsis -u sisname.sisx sisname.sis
2,用自己的dev证书sign:
signsis sisname.sis sisname.sisx mycer.cer mykey.key mypassword
Popularity: 3% [?]
09月 18th, 2007
将于2007年10月16-17日在伦敦举行。
那时候正好也在英国伦敦附近,希望有机会去看看。
http://www.symbiansmartphoneshow.com
Don’t miss the biggest smartphone event of the year with the opportunity to experience the future of mobile direct from the industry’s most forward-thinking players.
The world’s biggest brands are going mobile and they’re doing it first on smartphones. Consumer electronics, Internet, entertainment, commerce and publishing are all going mobile and they need your help to get there.
Popularity: 5% [?]
Tags: @SmartphoneShow
09月 18th, 2007
注册了symbianblog的域名。
在自己服务器上用XAMPP搭建了WordPress。
Symbian开发3年了,应该留下点东西,就从这个Blog开始吧!
Popularity: 4% [?]
09月 18th, 2007
Newer Posts