http://wiki.forum.nokia.com/index.php/How_use_NotifyChange_to_get_camera_clicks Does your application need a notification whenever a photo is clicked through the camera application? Well, here is how you can achieve it. The following article shows how your application can get a notification as soon as a photo is clicked and stored in the Phone memory, i.e., the C:/Nokia/Images folder. It is achieved using the NotifyChange API of the RFs server. Remember to include PlatformEnv.lib in your mmp file if you are using the PathInfo API's Library needed: LIBRARY PlatformEnv.lib Source: #ifndef _NOTIFY_C_ #define _NOTIFY_C_ #include
#include
#include "MyDirObserver.h" class CMyCNotify : public CActive { public: CMyCNotify(RFs& aFs, MDirObserver& aDirObserver); ~CMyCNotify(); void StartMonitoring(); public: // CActive void RunL(); void DoCancel(); private: RFs& iFs; MDirObserver& iDirObserver; }; #endif #include
#include
#include "MyCNotify.h" CMyCNotify::CMyCNotify(RFs& aFs, MDirObserver& aDirObserver) : CActive(EPriorityStandard), iFs(aFs), iDirObserver(aDirObserver) { CActiveScheduler::Add(this); } CMyCNotify::~CMyCNotify() { Cancel(); } void CMyCNotify::RunL() { if(iStatus==KErrNone) { iDirObserver.CChange(); StartMonitoring(); } else ; // there was an error so all monitoring will now stop } void CMyCNotify::DoCancel() { iFs.NotifyChangeCancel(iStatus); } void CMyCNotify::StartMonitoring() { if(!IsActive()) { TFileName path = PathInfo::PhoneMemoryRootPath(); path.Append(PathInfo::ImagesPath()); iFs.NotifyChange(ENotifyWrite, iStatus, path); SetActive(); } else ; // already waiting for a change so do nothing } and finally implement the interface #ifndef _DIROBSERVER_H_ #define _DIROBSERVER_H_ class MDirObserver { public: virtual void CChange() = 0; virtual ~MDirObserver(){} }; #endif
监听照相机拍照功能
最新推荐文章于 2019-07-05 15:34:53 发布