一个自动开机的问题

guestb 2005-12-09 05:13:48
请问如何编程实现针对S60手机的自动开机?
那里有例子?
...全文
398 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenziteng 2005-12-13
  • 打赏
  • 举报
回复
哈哈,你自己试试不就知道了.
gorilla007 2005-12-13
  • 打赏
  • 举报
回复
子腾兄,User::At()如何?按书上的解释说,User::After()在关机后会停止计时,但User::At()会继续计时,到点会自动开机进行询问或继续执行程序。我没有用过这个函数,不知道效果怎么样,如果子腾兄用过,看效果如何?书是对UIQ的那本,基本API那章的第一页下半截。
guestb 2005-12-10
  • 打赏
  • 举报
回复
我先试一下, 谢谢
chenziteng 2005-12-09
  • 打赏
  • 举报
回复
.
  简单查了一下,貌似公共的SDK里没有开放这种API。

  我这儿有一个方案,勉强符合你的要求,但没在真机上测试过,你看看中意不中意吧。

  S60手机的Clock可以设置闹钟,时间到时会自动开机报警,完了询问是否开机。

  我测了一下它是用"Alarm Server"实现的,因此想法是自己向"Alarm Server"写一个"Clock Alarm",这就等于编程设计了闹钟。缺陷是如果用户选"否"那就没办法了。

  下面的代码参考自:
http://db.cs.helsinki.fi/~mraento/lxr/source/ContextSensors/src/log_alarm.cpp

  已经在S60 SDK 2.1的仿真器上测试通过。

// .mmp
//...
LIBRARY ealwl.lib


// .cpp
#include <t32alm.h> // for RAlarmServer
// ...
RAlarmServer iAlarmServer; // forgive me
TInt err = iAlarmServer.Connect();
if(err==KErrNone)
{
CleanupClosePushL(iAlarmServer);
TAlarmInfo info;
TAlarmSetState state;
TInt i, err=-1;

/* 打开这段注释则设置了一个闹钟
TTime t; // target time
TFileName f; // sound file name
iAlarmServer.SetClockAlarm(0, t, f, f, EAlarmClockOnce);
*/
// 下面这段代码检索已设置的闹钟
CAlarmIdArray* ids = new(ELeave) CAlarmIdArray(8);
CleanupStack::PushL(ids);
iAlarmServer.AlarmArrayPopulateL((*ids), RAlarmServer::EArrayNext, 8);
for (i=0; i<ids->Count(); i++)
{
TInt id = ids->At(i);
err=iAlarmServer.AlarmInfo(info, RAlarmServer::EInfoById, id);
if (err==KErrNone )
{ // query the clock alarm info
state=iAlarmServer.AlarmState(info.iAlarmId);
if (state!=EAlarmNotSet && state!=EAlarmDisabled)
break;
}
}
CleanupStack::PopAndDestroy(); // ids
CleanupStack::PopAndDestroy(); // iAlarmServer
}


  很多细节没有考虑,你要是觉得能用就自己完善吧。

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧