📄 bluetoothdevicediscoverer.cpp
字号:
/*============================================================================ Name : BlueToothDeviceDiscoverer.cpp Author : Copyright : Description : Implementation============================================================================*/// INCLUDE FILES#include "BluetoothDeviceDiscoverer.h"#include "common.hrh"const TUint8 arrayGran = 8;/*============================================================================CBluetoothDeviceDiscoverer's constructor ============================================================================*/CBluetoothDeviceDiscoverer::CBluetoothDeviceDiscoverer(MBluetoothDeviceDiscovererObserver& aObs) : CActive(CActive::EPriorityStandard), iObserver(aObs) { CActiveScheduler::Add(this); }/*============================================================================CBluetoothDeviceDiscoverer's destructor============================================================================*/CBluetoothDeviceDiscoverer::~CBluetoothDeviceDiscoverer() { Cancel(); } /*============================================================================DoCancel is called as part of the active object's Cancel().Cancel the notifier.============================================================================*/void CBluetoothDeviceDiscoverer::DoCancel() { }/*============================================================================Display the BT device in range for the player to choose from============================================================================*/void CBluetoothDeviceDiscoverer::DiscoverAndSelectDeviceL(const TBTDeviceSelectionParamsPckg& /*aSelectionFilter*/) { if(IsActive()) { User::Leave(KErrInUse); } else { //We ask CQBTUISelectDialog to start the search for other BT device in range. CBTDeviceArray* btDeviceArray = new (ELeave)CBTDeviceArray(arrayGran); BTDeviceArrayCleanupStack::PushL(btDeviceArray); CQBTUISelectDialog* dialog = CQBTUISelectDialog::NewL(btDeviceArray); TInt err = KErrCancel; if(dialog->RunDlgLD(KQBTUISelectDlgFlagNone)) { CBTDevice* btDevice = btDeviceArray->At(0); if (btDevice) { iResponse().SetDeviceAddress(btDevice->BDAddr()); err = KErrNone; } } CleanupStack::PopAndDestroy();// btDeviceArray TRequestStatus* status = &iStatus; User::RequestComplete(status, err); SetActive(); } }/*============================================================================Handles CBluetoothConnector's completion events============================================================================*/void CBluetoothDeviceDiscoverer::RunL() { //We pass on to the engine the BT device address the user selected otherwise we pass on the error if(iStatus.Int() == KErrNone) { iObserver.OnDeviceDiscoveryComplete(iResponse); } else { iObserver.OnDeviceDiscoveryErr(iStatus.Int()); } }/*============================================================================Handles a leave occurring in the request completion event handler RunL().Reports the error to the observer============================================================================*/TInt CBluetoothDeviceDiscoverer::RunError(TInt aError) { iObserver.OnDeviceDiscoveryErr(aError); return KErrNone; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -