Symbian
文章平均质量分 56
stonesl
热爱技术的技术管理者,从事多年移动手机软件开发,从Symbian到Anddroid,见证了智能手机的发展历程。
展开
-
第五版手机模拟触屏操作来电时无声的操作
最近在做来电检测的操作,想让来电自动变为无声状态,第三版是模拟一个右软键就可以实现,第五版上右软键的功能是给来电发送短信,查了一些资料,需要模拟一个触屏操作,点击无声按钮就可以, RWsSession ws; ws.Connect(); TRawEvent ev1; TPoint pt(515, 100); ev1.Set(TRawEvent::EButton1Down,原创 2009-07-10 09:35:00 · 1141 阅读 · 0 评论 -
多视图设置列表的实现
最近看一些程序中有多视图设置列表,学习了一下怎么实现的,简单记录一下,以免以后备查,主要功能如下图程序主界面选择菜单里的设置选项打开设置视图一打开设置视图二1、UI类继承自MAknTabObserver类,并且实现它的void TabChangedL(TInt aIndex);函数(详细实现见下)。2、在UI类里定义导航指示器的指针CAknNavigat原创 2008-05-30 17:55:00 · 1413 阅读 · 0 评论 -
CAknPopupFieldText在表单中动态创建及动态增加数组列表的操作
折腾了一天终于把CAknPopupFieldText在表单中动态创建及动态增加数组列表的操作搞定,主要分为以下几步:1、定义资源文件RESOURCE ARRAY r_settings_choice_std { items = { LBUF { txt = qtn_appl_test;原创 2008-05-29 09:18:00 · 1674 阅读 · 2 评论 -
Symbian 中各种提示、输入对话框的使用
1、非阻塞提示框symbian定义了几个提示类,分别是:confirm类:CAknConfirmationNoteinfo类: CAknInformationNotewarning类:CAknWarningNoteerror类: CAknErrorNote头文件:aknnotewrappers.hlib:avkon.lib eikcdlg.lib eikctl.lib使用方法:Code转载 2008-05-23 17:25:00 · 518 阅读 · 0 评论 -
总结开发中的19个问题+若干问题
1、获取IMSI号、手机版本等 CTelephony:GetSubscriberId() CTelephony:GetPhoneId() CTelephony:Version()2、获取屏幕尺寸 TSize CEikConsoleScreen::ScreenSize 3、更改ListBox字体 方法1: _LIT(KFontNam转载 2008-05-23 17:23:00 · 788 阅读 · 0 评论 -
网络流量曲线图代码
效果图如下:实现方法:1、创建一个计时器,请将其打开2、写计时器活动对象的回调函数,在回调函数中刷新屏幕实现代码如下:创建计时器活动对象并且打开定时器: iPeriodicTimer = CPeriodic::NewL( CActive::EPriorityStandard );//创建活动对象 StartTimer();//打开定时器 打开定时器代码:1 if (转载 2008-05-23 17:18:00 · 1188 阅读 · 0 评论 -
手机撒谎软件之实现
手机撒谎软件之实现近日风行流氓软件,就连手机平台也加入了堕落的行列。现在俺就简单写一下这种手机上的流氓是如何欺骗人的。手机撒谎软件主要功能:你正在外面干见不得人的事,这时候老爸打电话问你干啥呢,这个软件就发挥作用了,播放一段打篮球或者老师讲课的录音,这样你可怜的老爸就以为你在努力学习呢。唉。。。。首先讲一下现在手机的平台,主要平台为Nokia下的Symbian开发,使用C++。流氓的准备工作转载 2008-05-23 17:14:00 · 904 阅读 · 1 评论 -
symbian 下面调用电话拨号的方法
symbian 下面调用电话拨号的方法开发电话本应用的时候,时常会需要直接拨打对方的电话号码。那么,如何在symbian s60平台上通过代码让自己的手机拨号呢?下面的代码可能会帮助你的:加入头文件:#include // for dial operatons 在mmp文件中需要加入:LIBRARY etel.lib // for dial转载 2008-05-23 17:13:00 · 517 阅读 · 0 评论 -
软件混音的实现
Symbian 6.1上实现的混音是个比较麻烦的问题,因为程序只能同时播放一个音乐,实现混音就需要程序自己来实现。下面是我从newlc上找到的一个关于PCM脉冲编码的音频信号的混音实现,其中包含了一个关键的混音算法!Hi !!!!I am not sure weather I have fully understood your question or not, I persume that转载 2008-05-23 17:11:00 · 505 阅读 · 0 评论 -
symbian下面xml的解析器
下面是symbian s60下的一个调用解析器的例子程序:希望对大家有帮助/****************************************************************** Elements.cpp** Copyright 1999, Clark Cooper, 2004 ToddSoftware* All rights reserved.** This pro转载 2008-05-23 17:09:00 · 687 阅读 · 0 评论 -
程序启动时闪屏功能的实现
为了让程序花哨一点,最近想实现一个程序启动时有一个全屏的界面,中间有一幅图片的功能,查找了一些资料,首先是要让全屏显示,查到好几种方法,选用了其中最简单的一种:AppUi()->ApplicationRect(),这样可实现,但是在显示的时候状态栏上边的信号指示和电量指示器还都存在,影响美观,反复测试发现下面方法可行:在UI里把状态栏替换为空,在闪屏时间到时再恢复到默认状态栏即可,主要代码如下原创 2008-08-06 22:07:00 · 1365 阅读 · 0 评论 -
Symbian 面板
面板分为状态面板、主面板和软键面板。其中以针对状态面板的操作为主。 状态面板分为下列子面板:标题面板、上下文面板、导航面板、信号面板、电池面板和通用指示符面板。要操作状态面板,首先应该通过CEikStatusPane* CAknAppUi::StatusPane()得到状态面板的指针。CEikStatusPane提供了对状态面板进行操作的各种方法:class CEikStatusP转载 2008-08-05 16:44:00 · 2158 阅读 · 6 评论 -
确认键弹出菜单问题的解决
Container中按确认键动态弹出菜单的一步用法是TKeyResponse CContextMenuContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) { // If the Select Key (OK key in emulator) is pressed, show the cont原创 2008-06-13 10:25:00 · 823 阅读 · 0 评论 -
如何使用CAknSearchField
CAknSingleStyleListBox* iListBox;CAknSearchField* iListBoxSearchField; //defined CGulIcon* defaultIcon = NULL; CAknSearchField* searchField = CAknSearchField::NewL( *this, CAknSearchFiel原创 2008-06-17 16:24:00 · 2074 阅读 · 2 评论 -
如何隐藏命令按钮(CBA)
在有些情况下需要隐藏已经存在的CBA(Command Button Area命令按钮区域)的某一命令按钮。比如,“选项----返回”,有时候需要将“选项”命令按钮以及选项下的菜单全部隐藏。 在上月的项目开发中,遇到了这样一个问题: 我做的是掌上法律词典,分成三个独立模块:法律法规、法律词库 和 使用说明。其中,法律词库是对某一个法律词条进行简短的解释,从法律词条转载 2008-06-20 08:43:00 · 745 阅读 · 0 评论 -
使用CHWRMVibra类来启动/停止/查询设备震动的状态
设备, 软件 版本:S60 3rd Edition S60 3rd Edition,FP1创建日期:详细描述:CHWRMVibra类是在S60第三版才开始发布的,它提供了控制设备震动模块的能力。我们需要的链接库为:WRMVibraClient.lib链接头文件为:hwrmvibra.h下列代码演示了如何获得震动状态:Code:iVibrate = CHWRMV转载 2009-03-13 16:00:00 · 821 阅读 · 0 评论 -
程序里判断当前手机是否支持WLAN网络
#include#include//Link against: FeatDiscovery.libTBool ret = CFeatureDiscovery::IsFeatureSupportedL( KFeatureIdProtocolWlan ); 模拟器上判断ret为ETrue,真机上结果正常。原创 2009-02-20 14:28:00 · 762 阅读 · 0 评论 -
Inserting TTime values in Symbian DB using SQL..
I had been trying to insert TTime values using SQL statements and had real tough time getting the SQL string right. Firstly there is a complete specification for how to format values in the SQL sta转载 2009-02-05 14:46:00 · 1156 阅读 · 1 评论 -
TTIME FORMATL SAMPLE
TTime currentTime;currentTime.HomeTime();TBuf100> time;currentTime.FormatL(time,_L("%Y_%M_%D_%H_%T_%S_%C")); //___18_13_37_474750LOG(time);currentTime.FormatL(time,_L("%Y %M %D %H%T%S%C")); // 18转载 2009-02-05 14:43:00 · 1125 阅读 · 0 评论 -
如何从Symbian数据库中读取长文本
近日来做Symbian数据库的东西,突然发现用TPtrC16ptr(aRow.ColDes16(aCol));这个方法不能获取类型为EDbColLongText16的字段,并返回“DBMS6”的Panic。百思不得其解,后来终于在NewLC的论坛上找到了解答。现在共享出来。解决方法可以用下面三行代码来表示,大家一目了然:)Code:RDbColReadStream re转载 2009-01-22 16:30:00 · 846 阅读 · 0 评论 -
Symbian内存泄露检查工具HookLogger安装及使用教程
在使用Symbian进行开发时经常会忘记释放我们曾经使用过的内存或指针,从而导致我们在模拟器中最后退出软件时会爆出提示,而检验遗漏的内存是程序员的天职所在,所以我们要想做好Symbian的开发,就必须熟悉如何查找内存,而Symbian SDK中提供了一个很好的工具HookLogger用来检验我们的内存操作。 下面所提到的是2008年5月1日版(0.423 rc版) 下载:转载 2009-01-08 11:47:00 · 2653 阅读 · 0 评论 -
如何通过EasyDgm发送中文短信(unicode)
EasyDgm是一个用于拦截短消息,发送短信的插件代码。用该插件拦截短信没有提示音,发送也不提示用户。但是本身该代码是老外开发的,只是针对8位编码的字符,没有根据我们中文的编码来做成完全Unicode版本的,为此以下改写就是实现Unicode字符串的发送。1、 修改DatagramService工程中的代码,将其内用到的8位描述符修改为16位,具体修改的描述罗列如下://修改前内容转载 2008-07-08 10:54:00 · 893 阅读 · 0 评论 -
调用名片夹视图选择名片信息
今天尝试了一下,在程序中调用名片选择视图的功能,大致实现如下:CPbkContactEngine* pbkContactEngine = CPbkContactEngine::NewL(&iEikonEnv->FsSession()); CleanupStack::PushL(pbkContactEngine); RPbkViewResourceFile phonebookResou原创 2008-07-03 10:36:00 · 1193 阅读 · 1 评论 -
使用GRID来实现九宫格菜单
1、头文件中声明用到的变量CAknGrid* iGrid; CAknGridM* iGridM; TInt iNumOfRows; TInt iNumOfColumns; TSize iCellSize; TInt iGraphHeight;2、源文件中的代码const TInt KNumOfSelectionColumns = 3; con原创 2008-06-23 09:01:00 · 2015 阅读 · 1 评论 -
How to change text of CBA buttons?
Origine: http://forum.newlc.com/index.php/topic,12882.0.htmlIn the RSS file:RESOURCE CBA r_yourapp_softkeys_options_open { buttons = { CBA_BUTTON { id=EAknSoftkeyOptions; txt = "Options转载 2008-06-20 08:41:00 · 530 阅读 · 0 评论 -
多视图结构下滚动条的出现
在传统应用程序框架下,用LISTBOX创建的滚动条这,但是在多视图框架下,就显示不出来,很是郁闷,找了一些资料终于解决了在view的DoActivateL中,如果ListBox创建在AppUi()->AddToStackL( *this, iContainer );前,则滚动条显示不出来,因此,ListBox的创建不能在Container的ConstructL中,或者至少说ScrollBar的原创 2008-06-21 09:57:00 · 717 阅读 · 0 评论 -
在symbian中如何使用MP3DecodeDLL播放MP3
mp3播放引擎头文件#if !defined(__WAVEGEN_ENGINE_H__)#define __WAVEGEN_ENGINE_H__#if !defined(__MDA_COMMON_AUDIO_H__)#include #endif#if !defined(__MDA_CLIENT_UTILITY_H__)#include #endif#if !defined(__M转载 2008-05-23 17:24:00 · 600 阅读 · 0 评论 -
如何检测手机型号
如何检测手机型号所有的Series60设备都拥有一个由制造商分配的唯一标识符-机器UID;因此可以通过这一UID信息来获取手机型号;本文就介绍了这种方法.常见的S60机型及其机器UID:S60 1st Edition (0.9):Nokia 7650 0x101F4FC3S60 1st Edition, FP1 (1.2):Nokia 3650 0x101F4转载 2008-05-23 17:17:00 · 3882 阅读 · 0 评论 -
知道一条信息的TMsvId,如何打开信息浏览视图
知道一条信息的TMsvId,想打开信息浏览视图,主要用如下代码实现:void CMtmEngine::OpenMessage(TMsvId aId){ TMsvEntry msgEntry; // class that represents the entry (a local cache) TMsvId ownerServiceId; if( iSes原创 2008-07-31 08:47:00 · 1137 阅读 · 1 评论 -
CAknColumnListBox下标记的使用
CAknColumnListBox下标记的使用是相当普遍的一个用法,主要用以在同时选择多个项的时候使用,它的主要实现步骤如下:1、构造时iSavedGamesListBox->ConstructL(this,EAknListBoxMarkableList);使用EAknListBoxMarkableList标志2、标记,取消标记,标记全部,全部取消功能的实现 case EAkn原创 2008-07-30 15:43:00 · 937 阅读 · 0 评论 -
Sending SMS with RSendAs
CRSendAsSender illustrates how to send SMS message using RSendAs in Symbian OS 9.x. To use it just construct the SMS sender by using the static NewL function. The first parameter is reference to t转载 2008-07-27 10:58:00 · 1006 阅读 · 0 评论 -
如何从当前主题中获取grid文本颜色
标题:如何从当前主题中获取grid文本颜色TSS000596设备, 软件 版本: S60 2nd Edition, S60 3rd Edition详细描述我们可以从当前主题中获取自定义grid(CAknGrid)的文本颜色,但在设置时第二版和第三版略有不同。解决方案S60第二版:正常状态下以及高亮状态下,可以在CCoeControl派生的Container的SizeChanged()方法中设置(该转载 2008-07-16 17:53:00 · 883 阅读 · 2 评论 -
Changing Status pane text and icon
The status pane icon and title are a good way of showing the current status inside the application. The following code samples illustrate how you can change the status pane icon and text on run time t转载 2008-07-07 15:18:00 · 744 阅读 · 0 评论 -
监控设置列表CAknSettingItemList各项的变化!
郁闷了一下午,想监控设置列表各个项的值改变的时候第一时间获得相关的信息,查了一些资料,终于找到解决的办法了,重写EditItemL函数。void CS60UIExampleList::EditItemL( TInt aIndex, TBool aCalledFromMenu ) { CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu原创 2008-04-16 17:35:00 · 601 阅读 · 3 评论 -
S60模拟器下删除已经调试过的应用程序的方法。
第三版下,删除下列文件:/epoc32/release/winscw/udeb/myapp.exe/epoc32/data/z/resource/apps/myapp.rsc/epoc32/release/winscw/udeb/z/private/10003a3f/apps/myapp_reg.rsc/Epoc32/release/winscw/udeb/z/resource/apps/m原创 2008-04-16 09:58:00 · 629 阅读 · 0 评论 -
Symbian Descriptor convert
1. TTime转TBuf型TBuf theTime;//存储转换后的时间 TTime tt; tt.HomeTime(); _LIT(KTimeFormat,"%Y%M%D%1-%2-%3 %H:%T:%S");//格式为:2006-03-04 12:12:12 tt.FormatL(theTime,KTimeFormat); 2. TDateTi转载 2008-04-16 22:17:00 · 566 阅读 · 0 评论 -
关于S60 3rd资源本地化的实现
以前做了一个Feisoon的项目,是基于S60 2nd开发的。现在做S60 3rd的移植,需要支持中文,所以需要进行程序本地化处理。中文的本地化还是比较麻烦的,有些朋友经常也遇到同样的问题,因此,我把自己本地化实现的过程记录下来和大家一起分享,有什么不对的地方,希望多加评论。 首先了解一下S60资源相关知识,下面一些文件是必须了解的。rss是资源源文件;rls是定义本地化的字符串转载 2008-04-02 22:21:00 · 541 阅读 · 0 评论 -
Symbian OS的通讯录操作总结
Symbian OS的通讯录操作总结用于记录通讯信息的数据库,存在于“/system/data/”目录下,文件名为“contacts.cdb”。主要操作有:1、打开数据库:CContactDatabase* database=CContactDatabase::OpenL( );CleanupStack::PushL(database);……..CleanupStack::PopAndDest转载 2008-03-24 09:58:00 · 756 阅读 · 0 评论 -
使用Carbide.vs与VS.NET2003构建Symbian开发平台—S60平台
作者:翁培铖主页:http://www.bention.com1.简介 在过去的几年里从事Symbian OS/C++的开发,选择什么样的IDE开发环境是一件很让人郁闷的事。微软的Visual C++ 6.0 缺乏人性化的设计,而VS.NET却不能很好地支持Symbian Os/C++的开发,Borland C++ BuilderX Mobile Edition 还有Metrowerks C转载 2008-03-19 16:54:00 · 1663 阅读 · 2 评论 -
收件箱里创建一条新的未读短信的操作
最近在学习MTM,看到在收件箱里创建一条新的未读短信挺好玩的,可以自己指定发件人的号码和姓名,时间等,尝试做了一下,主要碰到下面问题,记录一下:1、开始创建成功了,但是通过收件箱里信息详情查看的时候显示的是收件人,而不是发件人,这样一看就是假的,后来查资料和请教别人,还需要对CSmsHeader进行处理,用CSmsHeader里的SetFromAddressL添加发送人的号码就可以了。2原创 2008-08-03 22:05:00 · 1218 阅读 · 0 评论