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

📄 bluejackxappui.cpp

📁 symbian平台蓝牙程序,功能实现:搜索设备,指定时间间隔搜索,对指定的设备发送信息,也可指定时间间隔发送,日志操作,可通过mms,红外,蓝牙发送日志等
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*
* ============================================================================
*  Name     : CBlueJackXAppUi from BlueJackXAppUi.cpp
*  Part of  : BlueJackX
*  Created  : 25.01.2004 by Blader
*  Version  : 1.0
*  Copyright: 2004
* ============================================================================
*/

// INCLUDE FILES
#include "BlueJackXAppUi.h"
#include  "BlueJackXContainer.h" 
#include <BlueJackX.rsg>
#include "bluejackx.hrh"

#include <avkon.hrh>
#include <aknnotewrappers.h> 
#include <aknmessagequerydialog.h>

#include <ObjectExchangeClient.h>
#include <bjack.h>

// ================= MEMBER FUNCTIONS =================

// ------------------ CONSTRUCTOR ---------------------
// ----------------------------------------------------

void CBlueJackXAppUi::ConstructL()
    {
		BaseConstructL();
		iAppContainer = new (ELeave) CBlueJackXContainer;
		iAppContainer->SetMopParent(this);
		iAppContainer->ConstructL( ClientRect() );
		AddToStackL( iAppContainer );

		BlueJacking = false;
		Scanvorgang = false;
		Interval = 60;
		// senden an
		sendui = CSendAppUi::NewL(EBlueJackLogging, NULL);

		iBluejackClient = CBjack::NewL();
		iClient = CObjectExchangeClient::NewL();
    }

// ------------------- DESTRUCTOR ---------------------
// ----------------------------------------------------

CBlueJackXAppUi::~CBlueJackXAppUi()
    {
	    if (iAppContainer)
			{
				RemoveFromStack( iAppContainer );
				delete iAppContainer;
			}
		// senden an menue l鰏chen
		delete sendui;
	    
		delete iClient;
		iClient = NULL;

		delete iBluejackClient;
		iBluejackClient = NULL;
   }

// ----------------------------------------------------
// ----------------------------------------------------

void CBlueJackXAppUi::DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane)
    {
		if (aResourceId == R_LOGGING_SUB)
			{
				sendui->DisplaySendMenuItemL(*aMenuPane, 0,TSendingCapabilities(0, 0, TSendingCapabilities::ESupportsAttachments));
			}
		if (aResourceId == R_SENDUI_MENU)
			{
				// Display the list of bearers.
				sendui->DisplaySendCascadeMenuL(*aMenuPane);
			}
    }

// ----------------------------------------------------
// ----------------------------------------------------

TKeyResponse CBlueJackXAppUi::HandleKeyEventL(
    const TKeyEvent& aKeyEvent,TEventCode aType)
    {
	
		if (aType == EEventKey)
			{
				switch (aKeyEvent.iCode)
					{
					case EKeyOK:
						iAppContainer->ShowDeviceDetails();
					return EKeyWasConsumed;
					break;
					}
			}
		return iAppContainer->iListBox->OfferKeyEventL(aKeyEvent, aType);
    }

// ----------------------------------------------------
// ----------------------------------------------------


void CBlueJackXAppUi::HandleCommandL(TInt aCommand)
    {
	
	switch ( aCommand )
        {
			// ----- gefundene Ger鋞e z鋒len
			case EBlueJackDeviceCount:
            {
				TBuf16<8> str; 
				TInt Zahl;
				Zahl = iAppContainer->verschickteVCards();
				str.Num(Zahl);
				CEikonEnv::Static()->AlertWin(_L("Devices Found:"),str);
				break;
            }

			// ----- Nur Scannen  und auflisten
				case EBlueJackStartScanning:
				{
					BlueJacking = false; // BlueJacking ausstellen
					Scanvorgang = true;
					iAppContainer->StatusPaneMeldung(_L("Scanning"));
					iAppContainer->StartScan(Interval);
					break;
				}
				case EBlueJackStopScanning:
				{
					Scanvorgang = false;
					iAppContainer->StatusPaneMeldung(_L(""));
					iAppContainer->StopScan();
					break;
				}

				
			// ----- Scannen mit Bluejacking
			case EBlueJackStartJacking:
			{
				//pr黤en ob datei existiert
				/*
				if (FileExists()==true)
					{
						iAppContainer->StatusPaneMeldung(_L("Bluejacking"));						
						BlueJacking = true; 		
						Scanvorgang = true;
						iAppContainer->StartScan(Interval);
					}else{
						CEikonEnv::Static()->AlertWin(_L("Please set"),_L("Jacking Mesage"));
					}
				

					*/
				//CEikonEnv::Static()->AlertWin(_L("Info:"),_L("not implanted"));

				// BLUEJACKING SENDEN
				
				TBTDevAddr iAutoConnectAddress;
				TBuf8<54> settingsBuf;
				settingsBuf.Copy(_L("000 006 171 128 083 070")); //flo
					
				TLex8 lex(settingsBuf);
				for (TInt i = 0; i < 6; i++)
				{
					TInt tempByte;
					lex.Val(tempByte);
					iAutoConnectAddress[i] = (TUint8) tempByte;
					lex.SkipSpace();
				}

	
				//iBluejackClient->BTPort = tempVal;
				iBluejackClient->BTAddy = iAutoConnectAddress; 
				iBluejackClient->ConnectL();

				CAknInformationNote* dlg = new(ELeave)CAknInformationNote(ETrue); 
				TBuf<70> aDes = _L("Message send"); 
				dlg->SetTimeout(CAknNoteDialog::ENoTimeout); 
				dlg->ExecuteLD(aDes); 


				iBluejackClient->DisconnectL();
				// BLUEJACKING SENDEN


				break;
			}
			case EBlueJackStopJacking:
			{
				/*
				iAppContainer->StatusPaneMeldung(_L(""));
				Scanvorgang = false;
				iAppContainer->StopScan();*/
				CEikonEnv::Static()->AlertWin(_L("Info:"),_L("not implanted"));	
				break;
			}

			// ------------- Restliche Menues
			case EBlueJackDirektMSG:
			{

				iClient->direkt = false;
				// nachrichten datei erzeugen
				TBuf<60> buf;
				CAknTextQueryDialog * dlgt = CAknTextQueryDialog::NewL(buf);
				dlgt->SetMaxLength(60);
				dlgt->SetPromptL(_L("Enter Message:")); 
				dlgt->ExecuteLD(R_AKNEXQUERY_DATA_QUERY); 
				makeDirektVCard(buf);
				iClient->ConnectL();

				CAknInformationNote* dlg = new(ELeave)CAknInformationNote(ETrue); 
				TBuf<70> aDes = _L("Message send"); 
				dlg->SetTimeout(CAknNoteDialog::ENoTimeout); 
				dlg->ExecuteLD(aDes); 
				iClient->DisconnectL();

				// bereits in verwendung fehle rbeim 2 senden wegmachen
				// liegt evtl an setactive

				break;
			}
			case EBlueJackMessage:
			{
				// Dialog ausgeben und Eingabe an makeVCard 黚ergeben
				TBuf<60> buf;
				CAknTextQueryDialog * dlgt = CAknTextQueryDialog::NewL(buf);
				dlgt->SetMaxLength(60);
				dlgt->SetPromptL(_L("Enter Message:")); 
				dlgt->ExecuteLD(R_AKNEXQUERY_DATA_QUERY); 
				makeVCard(buf);
				break;
			}
			case EBlueJackInterval:
			{
				if (Scanvorgang==true)
					{
						CEikonEnv::Static()->AlertWin(_L("Info:"),_L("Stop Scanning first!"));
					}else{
						// Intervall 黚ergeben
						TBuf<10> buf;
						CAknTextQueryDialog * dlgt = CAknTextQueryDialog::NewL(buf);
						dlgt->SetMaxLength(60);
						dlgt->SetPromptL(_L("Enter Interval 30-600sec:")); 
						dlgt->ExecuteLD(R_AKNEXQUERY_NUMBER_LAYOUT);
						// string des intervalls in integer umrechnen
						TLex lexer(buf);
						TInt tempVal;
						lexer.Val(tempVal);
						Interval = tempVal;
					}
				break;
			}
			case EBlueJackLogging_load:
			{
				if(iEikonEnv->QueryWinL(_L("clear list and"),_L("load log continue?")))
				{
					iAppContainer->List_Clear();
					iAppContainer->LoadLog();
				}
				break;
			}
			case EBlueJackLogging_save:
			{
				if(iEikonEnv->QueryWinL(_L("add list entrys"),_L("to log continue?")))
				{
					iAppContainer->SaveLog();
				}
				break;
			}
			case EBlueJackLogging_clear:
			{
				if(iEikonEnv->QueryWinL(_L("clear"),_L("list?")))
				{
					iAppContainer->List_Clear();
				}
				break;
			}
			case EBlueJackLogging_dellog:
			{
				if(iEikonEnv->QueryWinL(_L("delete log.dat"),_L("continue?")))
				{
					iAppContainer->Delete_logfile();
				}
				break;
			}
			case EBlueJackINFO:
			{
				_LIT(KMess,"BlueJackX, Version 0.9\nwww.bluejackx.de.vu\nwww.blader-software.de\nCopyright 2004 Blader\nAuthor: Blader");
				TBuf16<300>message(KMess);
				CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL(message);
				dlg->SetHeaderTextL(_L("About")); 
				dlg->ExecuteLD(R_ABOUT); 

				break;
			}

			// --- Beenden 
			case EAknSoftkeyBack:
			case EEikCmdExit:
            {
				if(iEikonEnv->QueryWinL(_L("Exit BlueJackX?"),_L("")))
				{
					iClient->StopL();
					Exit();
				}
	            break;
            }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -