⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mybluetoothengineclass.cpp

📁 Symbian C++ 蓝牙例程
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/* ====================================================================
 * 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 + -