说明:blog内容会和论坛www.devdiv.net保持同步更新
Symbian (Backup sis on installing)安装时备份SIS
备份自己是一个很有技巧的技术点
我{zx0}发现使用此技巧的是搜狗输入法
搜狗输入法有一个功能是可以用bluetooth共享给好友
后来调研了好久不知道如何做到的.
感谢陈子腾大神的总结
在这里也总结一下做个备忘
首先我们来看,安装文件的时候我们需要知道啥时候自己被安装了.
因为安装程序不允许多实力安装.也就是说同一时刻只能有一个安装
程序安装.
这样我们就可以在程序安装的时候得到自己的名字.然后再进行备份了.
那么如何知道自己被安装了呢.
TOpenFileScan可以枚举得到所有打开的文件.
//下面是找到当前正在安装的名字
RFs fs;
TInt err = fs.Connect();
User::LeaveIfError(err);
CleanupClosePushL(fs);
TFileName filename;
TOpenFileScan ofs(fs);
TBool done = EFalse;
//枚举所有打开的文件
while (!done)
{
CFileList*
fl= NULL;
ofs.NextL(fl);
if
(fl==NULL)
{
done =
ETrue;
}
else
{
CleanupStack::PushL(fl);
TInt count = fl->Count();
for (TInt i= 0;
(i<count)&&(!done);
i++)
{
_LIT(KExtSis, ".sis");
_LIT(KExtSisx, ".sisx");
TEntry entry = (*fl)[i];
TParsePtrC parse(entry.iName);
//当前打开的文件后缀名为SIS的.把名字保存下来
if
((parse.Ext()==KExtSis)||(parse.Ext()==KExtSisx))
{
filename = entry.iName;
done = ETrue;
}
}
CleanupStack::PopAndDestroy(fl);
}
}
///以上就可以找到已经安装的自己的名字了.
然后再让我们看看有哪些安装形式
1.数据线安装
2.蓝牙安装
3.安装SIS在手机上进行直接安装
我们先来看看以下安装的几种情况
1.数据线安装(PC套件会把SIS在手机上copy一份)
2.蓝牙安装(可以通过API取到附件中的SIS)
3.Copy到手机上直接安装(直接搜索可以找到)
让我们看如何处理
_LIT(KSisBackup, "c:\\data\\backup.sis");
if(filename!=KNullDesC)
{
BaflUtils::EnsurePathExistsL(fs,
KSisBackup);
_LIT(KMessagingPrivateFolder,
"\\private\\1000484b\\");
_LIT(KPrivateFolder, "\\private\\");
filename.LowerCase();
if(filename.Find(KMessagingPrivateFolder)==0)
{
//在信息目录里.可以通过API取出附件中的文件
// Messaging
application's private folder
// try to
retrieve the message attachment
CSmsHandler*
sms = CSmsHandler::NewLC(); // need active scheduler
sms->ExportInboxToFileL(fs,
filename, KSisBackup);
CleanupStack::PopAndDestroy(sms);
}
else
if(filename.Find(KPrivateFolder)==0)
{
//在私有目录下.没有办法取得
//如果SIS在私有目录下,就说明在安装的过程中只能通过其他程序
//安装,如果通过其他程序安装
// other
private folder
// no idea
how to get the sis file
}
else//已经在手机上
{
_LIT(KDriveC, "c:");
filename.Insert(0, KDriveC);
// other
folders
TBool found
= EFalse;
TDriveList
driveList;
Symbian (Backup sis on installing)安装时备份SIS
备份自己是一个很有技巧的技术点
我{zx0}发现使用此技巧的是搜狗输入法
搜狗输入法有一个功能是可以用bluetooth共享给好友
后来调研了好久不知道如何做到的.
感谢陈子腾大神的总结
在这里也总结一下做个备忘
首先我们来看,安装文件的时候我们需要知道啥时候自己被安装了.
因为安装程序不允许多实力安装.也就是说同一时刻只能有一个安装
程序安装.
这样我们就可以在程序安装的时候得到自己的名字.然后再进行备份了.
那么如何知道自己被安装了呢.
TOpenFileScan可以枚举得到所有打开的文件.
///以上就可以找到已经安装的自己的名字了.
然后再让我们看看有哪些安装形式
1.数据线安装
2.蓝牙安装
3.安装SIS在手机上进行直接安装
我们先来看看以下安装的几种情况
1.数据线安装(PC套件会把SIS在手机上copy一份)
2.蓝牙安装(可以通过API取到附件中的SIS)
3.Copy到手机上直接安装(直接搜索可以找到)
让我们看如何处理
_LIT(KSisBackup, "c:\\data\\backup.sis");
if(filename!=KNullDesC)
{