📄 mybluetoothengineclass.cpp
字号:
/* ====================================================================
* File: MyBluetoothEngineClass.cpp
* Created: 23/08/07
* Author:
* Copyright (c): , All rights reserved
* ==================================================================== */
#include <bteng.h>
#include <eikenv.h>
#include <aknquerydialog.h>
#include <btdevice.h>
#include <bttypes.h>
#include "BluetoothEngine_ExtensiblePlugInAppView.h"
#include "MyBluetoothEngineClass.h"
#include <BluetoothEngine_ExtensiblePlugIn.rsg>
const TInt64 KBTIntAddrInt = 00000000000;// 00000000000 is the Bluetooth Device Address, it can be obtained by *#2820#
// Standard construction sequence
CMyBTEngine* CMyBTEngine::NewL(CBluetoothEngine_ExtensiblePlugInAppView* aAppView)
{
CMyBTEngine* self = CMyBTEngine::NewLC(aAppView);
CleanupStack::Pop(self);
return self;
}
CMyBTEngine* CMyBTEngine::NewLC(CBluetoothEngine_ExtensiblePlugInAppView* aAppView)
{
CMyBTEngine* self = new (ELeave) CMyBTEngine;
CleanupStack::PushL(self);
self->ConstructL(aAppView);
return self;
}
CMyBTEngine::CMyBTEngine():iBTIntAddr(KBTIntAddrInt)
{
}
void CMyBTEngine::ConstructL(CBluetoothEngine_ExtensiblePlugInAppView* aAppView)
{
iBTDevice = CBTDevice::NewL(iBTIntAddr);
iDupAppView = aAppView;
iBtSettings = CBTMCMSettings::NewL();
}
CMyBTEngine::~CMyBTEngine()
{
if ( iBtSettings )
{
delete iBtSettings;
iBtSettings = NULL;
}
if ( iBTDevice )
{
delete iBTDevice;
iBTDevice = NULL;
}
}
void CMyBTEngine::DiscoverabilityModeChangedL (TBTDiscoverabilityMode aMode)
{
switch ( aMode )
{
case EBTDiscModeHidden:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("Hidden"));
}
break;
case EBTDiscModeGeneral:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("General"));
}
break;
default:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("Temporary"));
}
}
}
void CMyBTEngine::PowerModeChangedL (TBool aState)
{
if(aState)
CEikonEnv::InfoWinL(_L("BlueTooth On"),_L(""));
else
CEikonEnv::InfoWinL(_L("BlueTooth Off"),_L(""));
}
void CMyBTEngine::BTAAccessoryChangedL (TBTDevAddr &/*aAddr*/)
{
//get the accessory address
}
void CMyBTEngine::BTAAConnectionStatusChangedL (TBool &/*aStatus*/)
{
//Get the connection statucs change notifications
}
// retrieves the information like Bluetooth Status (i.e., On or Off), Discoverability, Search Mode, Name, Sap Mode
void CMyBTEngine::GetAllSettings()
{
iErrCode = iBtSettings->GetAllSettings(iPowerState,iDiscoverabilityMode,iSearchMode,iBTLocalName,iNameModifiedFlag,iSapMode);
if ( iErrCode == KErrNone )
{
if(iPowerState)
{
CEikonEnv::InfoWinL(_L("BlueTooth "),_L("On"));
}
else
{
CEikonEnv::InfoWinL(_L("BlueTooth "),_L("Off"));
}
switch ( iDiscoverabilityMode )
{
case EBTDiscModeHidden:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("Hidden"));
}
break;
case EBTDiscModeGeneral:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("General"));
}
break;
default:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("Temporary"));
}
}
if(iSearchMode == EBTSearchModeGeneral)
{
CEikonEnv::InfoWinL(_L("BlueTooth SearchMode"),_L("General"));
}
else
{
CEikonEnv::InfoWinL(_L("BlueTooth SearchMode"),_L("Limited"));
}
CEikonEnv::InfoWinL(_L("BT Name"),iBTLocalName);
iBTLocalName.Zero();
if(iSapMode == EBTSapDisabled)
{
CEikonEnv::InfoWinL(_L("BlueTooth SAPMode"),_L("Disabled"));
}
else
{
CEikonEnv::InfoWinL(_L("BlueTooth SAPMode"),_L("Enabled"));
}
}
else
{
iErrCodeBuf.AppendNum(iErrCode);
CEikonEnv::InfoWinL(_L("Get All Setting Error"), iErrCodeBuf);
iErrCodeBuf.Zero();
}
}
// retrieves the local Bluetooth Name
void CMyBTEngine::GetLocalBTName()
{
iErrCode = iBtSettings->GetLocalBTName(iBTLocalName);
if ( iErrCode == KErrNone )
{
CEikonEnv::InfoWinL(_L("BT Name"),iBTLocalName);
iBTLocalName.Zero();
}
else
{
iErrCodeBuf.AppendNum(iErrCode);
CEikonEnv::InfoWinL(_L("GetLocalBTName Error "), iErrCodeBuf);
iErrCodeBuf.Zero();
}
}
// sets the local Bluetooth Name
void CMyBTEngine::SetLocalBTName()
{
CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL(iBTLocalName);
CleanupStack::PushL(dlg);
TInt errDlg = dlg->ExecuteLD(R_DATA_QUERY_DIALOG);
if(errDlg)
{
iErrCode = iBtSettings->SetLocalBTName(iBTLocalName);
if ( iErrCode == KErrNone )
{
CEikonEnv::InfoWinL(_L("Setting BT Local Name"),_L("Successful"));
}
else
{
iErrCodeBuf.AppendNum(iErrCode);
CEikonEnv::InfoWinL(_L("SetLocalBTName Error "), iErrCodeBuf);
iErrCodeBuf.Zero();
}
}
else
{
CEikonEnv::InfoWinL(_L("Name not Entered"),_L(""));
}
iBTLocalName.Zero();
CleanupStack::Pop(dlg);
}
// gets the Bluetooth Discoverability Mode
void CMyBTEngine::GetDiscoverabilityMd()
{
iErrCode = iBtSettings->GetDiscoverabilityMode(iDiscoverabilityMode);
if ( iErrCode == KErrNone )
{
switch ( iDiscoverabilityMode )
{
case EBTDiscModeHidden:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("Hidden"));
}
break;
case EBTDiscModeGeneral:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("General"));
}
break;
default:
{
CEikonEnv::InfoWinL(_L("BlueTooth Discoverability"),_L("Temporary"));
}
}
}
else
{
iErrCodeBuf.AppendNum(iErrCode);
CEikonEnv::InfoWinL(_L("GetDiscoverabilityMd Error "), iErrCodeBuf);
iErrCodeBuf.Zero();
}
}
// sets the Bluetooth Discoverability Mode to Hidden
void CMyBTEngine::SetDiscoverabilityMdHidden()
{
iDiscoverabilityMode = EBTDiscModeHidden;
iErrCode = iBtSettings->SetDiscoverabilityModeL(iDiscoverabilityMode);
if ( iErrCode == KErrNone )
{
CEikonEnv::InfoWinL(_L("setting of hidden "),_L("successful"));
}
else
{
iErrCodeBuf.AppendNum(iErrCode);
CEikonEnv::InfoWinL(_L("SetDiscoverabilityMdHidden Error "), iErrCodeBuf);
iErrCodeBuf.Zero();
}
}
// sets the Bluetooth Discoverability Mode to General
void CMyBTEngine::SetDiscoverabilityMdGeneral()
{
iDiscoverabilityMode = EBTDiscModeGeneral;
iErrCode = iBtSettings->SetDiscoverabilityModeL(iDiscoverabilityMode);
if ( iErrCode == KErrNone )
{
CEikonEnv::InfoWinL(_L("setting of General "),_L("successful"));
}
else
{
iErrCodeBuf.AppendNum(iErrCode);
CEikonEnv::InfoWinL(_L("SetDiscoverabilityMdGeneral Error "), iErrCodeBuf);
iErrCodeBuf.Zero();
}
}
// sets the Bluetooth Discoverability Mode to Temperory
void CMyBTEngine::SetDiscoverabilityMdTemp()
{
iDiscoverabilityMode = EBTDiscModeTemporary;
iErrCode = iBtSettings->SetDiscoverabilityModeL(iDiscoverabilityMode);
if ( iErrCode == KErrNone )
{
CEikonEnv::InfoWinL(_L("setting of Temp "),_L("successful"));
}
else
{
iErrCodeBuf.AppendNum(iErrCode);
CEikonEnv::InfoWinL(_L("SetDiscoverabilityMdTemp Error "), iErrCodeBuf);
iErrCodeBuf.Zero();
}
}
// gets the Bluetooth Search Mode
void CMyBTEngine::GetSearchMd()
{
iErrCode = iBtSettings->GetSearchMode(iSearchMode);
if ( iErrCode == KErrNone )
{
if(iSearchMode ==EBTSearchModeGeneral)
{
CEikonEnv::InfoWinL(_L("BlueTooth SearchMode"),_L("General"));
}
else
{
CEikonEnv::InfoWinL(_L("BlueTooth SearchMode"),_L("Limited"));
}
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -