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

📄 bluejackxappui.cpp

📁 symbian平台蓝牙程序,功能实现:搜索设备,指定时间间隔搜索,对指定的设备发送信息,也可指定时间间隔发送,日志操作,可通过mms,红外,蓝牙发送日志等
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        default:
				// ###################################### senden an menu
				if (aCommand > EBlueJackLogging) 
					{
							CDesC16ArrayFlat *array = new (ELeave) CDesC16ArrayFlat(1);
							CleanupStack::PushL(array);
							TBuf<256> filen;
							filen=(TText*)L"\\system\\apps\\BlueJackX\\log.dat";
							array->AppendL(filen);
							sendui->CreateAndSendMessageL (aCommand, 0, array);
							CleanupStack::PopAndDestroy(); // dir, array
					}
				// ###################################### ENDE senden an menu
            break;      
        }




    }

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


void CBlueJackXAppUi::SendeVcard()//(TBTDevAddr devAddr)
{
	TBTDevAddr devAddr;
	TRequestStatus iStatus;
	TBTDevAddr iAutoConnectAddress;
	TBuf8<54> settingsBuf;

	
						// ets eingabe von ports
							TBuf<10> buf;
						CAknTextQueryDialog * dlgt = CAknTextQueryDialog::NewL(buf);
						dlgt->SetMaxLength(60);
						dlgt->SetPromptL(_L("Enter RFCOMM:")); 
						dlgt->ExecuteLD(R_PORT);
		
						// string des intervalls in integer umrechnen
						TLex lexer(buf);
						TInt tempVal;
						lexer.Val(tempVal);

	settingsBuf.Copy(_L("000 006 171 128 083 070")); //flo
	//settingsBuf.Copy(_L("000 002 238 165 147 050")); //marvin

	devAddr = StringDezimalMacID(settingsBuf)													 ;

	_LIT(currentFileName,"\\system\\apps\\BlueJackX\\jackMSG.VCF");


	CObexClient *obexClient;
	CObexFileObject *obexFile;
	TObexBluetoothProtocolInfo obexBTProtoInfo;

	obexBTProtoInfo.iTransport.Copy(_L("RFCOMM"));

	TInt KRfcommChannel;
	KRfcommChannel = tempVal;
	
	obexBTProtoInfo.iAddr.SetBTAddr(devAddr);
	obexBTProtoInfo.iAddr.SetPort(KRfcommChannel);

	iStatus = KRequestPending;
	
	obexClient = CObexClient::NewL(obexBTProtoInfo);
    obexFile = CObexFileObject::NewL(TPtrC(NULL, 0));
	
	
	obexClient->Connect(iStatus);

	TInt err;
	TRAP(err, obexFile->InitFromFileL(currentFileName));
	if (err)
	{	
		User::InfoPrint(_L("Couldn't open file"));
		CEikonEnv::Static()->AlertWin(_L("info:"),_L("no file"));
	}
	else
	{		
		if (iStatus == KErrNone)
			{
				iStatus = KRequestPending;				
				User::WaitForRequest(iStatus);
				obexClient->Put(*obexFile,iStatus);
				CEikonEnv::Static()->AlertWin(_L("Status:"),_L("3"));  // muss drin seinda mit sendne geht
				User::WaitForRequest(iStatus);
				obexClient->Disconnect(iStatus);
			}
	}
	
}

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

void CBlueJackXAppUi::makeVCard(TBufC<60> BlueJackMessage)
{
	RFile outStream;
	TBuf8<200> vcardBuffer8bit;
	_LIT(KFileName,"\\system\\apps\\BlueJackX\\jackMSG.VCF");
	vcardBuffer8bit.Copy(BlueJackMessage);
	vcardBuffer8bit.Insert(0, _L8("BEGIN:VCARD\r\nVERSION:2.1\r\nN:"));
	vcardBuffer8bit.Append(_L8("\r\nEND:VCARD"));
	if (outStream.Replace(iEikonEnv->Static()->FsSession(), KFileName, EFileRead) == KErrNone)
	{
		outStream.Write(vcardBuffer8bit);
		outStream.Close();
	}
}

void CBlueJackXAppUi::makeDirektVCard(TBufC<60> BlueJackMessage)
{
		TInt err;
		RFile file;
		_LIT(KFileName,"\\system\\apps\\BlueJackX\\jackMSGdirekt.VCF");
		err = file.Open(CEikonEnv::Static()->FsSession(), KFileName, EFileRead | EFileShareAny);
		if(err == KErrNone)
			{
				RFs fsSession; 
				fsSession.Connect();
				fsSession.Delete(_L("\\system\\apps\\BlueJackX\\jackMSGdirekt.VCF"));
				fsSession.Close();
			}
		file.Close();


	RFile outStream;
	TBuf8<200> vcardBuffer8bit;
	vcardBuffer8bit.Copy(BlueJackMessage);
	vcardBuffer8bit.Insert(0, _L8("BEGIN:VCARD\r\nVERSION:2.1\r\nN:"));
	vcardBuffer8bit.Append(_L8("\r\nEND:VCARD"));
	if (outStream.Replace(iEikonEnv->Static()->FsSession(), KFileName, EFileRead) == KErrNone)
	{
		outStream.Write(vcardBuffer8bit);
		outStream.Close();
	}
}

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

void CBlueJackXAppUi::BuddysSuchen()
	{
	
		RSocketServ iSocketServer;
		RSocket iSendingSocket;
		iSocketServer.Connect();
		TProtocolDesc pInfo;

		TInt KRfcommChannel;

		KRfcommChannel = 1;

		User::LeaveIfError(iSocketServer.FindProtocol(_L("BTLinkManager"),pInfo));

		RHostResolver hr;
		User::LeaveIfError(hr.Open(iSocketServer,pInfo.iAddrFamily,pInfo.iProtocol));

		TInquirySockAddr addr;
		TNameEntry entry;
		addr.SetIAC(KGIAC);
		addr.SetAction(KHostResInquiry|KHostResName);
		TRequestStatus status;
		hr.GetByAddress(addr, entry, status);
		User::WaitForRequest(status);
		
		TBTSockAddr iBTSockAddr;

		// in liste schreiben 
		if (status == KErrNone)
			{
				iBTSockAddr = entry().iAddr;
				MacID = iBTSockAddr.BTAddr();
				iAppContainer->BuddyHinzufuegen(entry().iName,MacID);
				//this->DeviceFirma(MacID);
				
				if (BlueJacking==true)
					{
						// ---------- start bluejacking ----
						//SendeVcard(iBTSockAddr.BTAddr());
					}

				while (hr.Next(entry) != KErrHostResNoMoreResults)
					{
						// in liste schreiben
						iBTSockAddr = entry().iAddr;
						MacID = iBTSockAddr.BTAddr();
						iAppContainer->BuddyHinzufuegen(entry().iName,MacID);
						//this->DeviceFirma(MacID);
						
						if (BlueJacking==true)
							{
								// ---------- start bluejacking ----
								//SendeVcard(iBTSockAddr.BTAddr());
							}
					}
			}//muh
		hr.Close();
		iSocketServer.Close();
	}

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

bool CBlueJackXAppUi::FileExists()
	{
		bool status;
		status = false;
		TInt err;
		RFile file;
		_LIT(KFileName,"\\system\\apps\\BlueJackX\\jackMSG.VCF");
		err = file.Open(CEikonEnv::Static()->FsSession(), KFileName, EFileRead | EFileShareAny);
		if(err != KErrNone)
			{
				status = false;
			}else{
				status = true;
			}
		file.Close();
		return status;
	}

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

TBuf<65> CBlueJackXAppUi::DezimalMacIDtoString(TBTDevAddr btDevAddr)
	{
		TBuf<65> temp;	
		temp.Format(_L("%x:%x:%x:%x:%x:%x"), btDevAddr[0], btDevAddr[1], 
		btDevAddr[2], btDevAddr[3], btDevAddr[4], btDevAddr[5]);
		return temp;
	}

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

TBTDevAddr CBlueJackXAppUi::StringDezimalMacID(TBuf8<65> stringmacid)
	{
		TBTDevAddr iAutoConnectAddress;
		TBuf8<54> settingsBuf;
		settingsBuf.Copy(stringmacid);
		
		TLex8 lex(settingsBuf);
			for (TInt i = 0; i < 6; i++)
			{
			TInt tempByte;
			lex.Val(tempByte);
			iAutoConnectAddress[i] = (TUint8) tempByte;
			lex.SkipSpace();
			}
		return iAutoConnectAddress;
	}

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

TBuf16<32> CBlueJackXAppUi::FirmenListe(TBuf<65> macFactory)
	{
		_LIT16(meinstring,"");
		TBuf16<32> FirmaRueckgabeName(meinstring);

		if(macFactory.Compare(_L("0:2:ee"))==0){	FirmaRueckgabeName.Copy(_L("Nokia"));	}
		if(macFactory.Compare(_L("0:60:57"))==0){	FirmaRueckgabeName.Copy(_L("Nokia"));	}

		if(macFactory.Compare(_L("0:1:e3"))==0){	FirmaRueckgabeName.Copy(_L("Siemens"));	}

		if(macFactory.Compare(_L("0:80:37"))==0){	FirmaRueckgabeName.Copy(_L("Ericsson"));	}
		if(macFactory.Compare(_L("0:a:d9"))==0){	FirmaRueckgabeName.Copy(_L("Ericsson"));	}
		if(macFactory.Compare(_L("0:e:7"))==0){		FirmaRueckgabeName.Copy(_L("Ericsson"));	}

		if(macFactory.Compare(_L("0:a:28"))==0){	FirmaRueckgabeName.Copy(_L("Motorola"));	}

		if(macFactory.Compare(_L("0:2:c7"))==0){	FirmaRueckgabeName.Copy(_L("HP / Compaq"));	}
		if(macFactory.Compare(_L("0:4:3e"))==0){	FirmaRueckgabeName.Copy(_L("HP / Compaq"));	}

		if(macFactory.Compare(_L("0:7:e0"))==0){	FirmaRueckgabeName.Copy(_L("Palm"));	}
		if(macFactory.Compare(_L("0:d:85"))==0){	FirmaRueckgabeName.Copy(_L("Palm"));	}
 
		if(macFactory.Compare(_L("0:8:c6"))==0){	FirmaRueckgabeName.Copy(_L("Philips"));	}
		if(macFactory.Compare(_L("0:10:dc"))==0){	FirmaRueckgabeName.Copy(_L("MSI"));	}
		if(macFactory.Compare(_L("0:6:ab"))==0){	FirmaRueckgabeName.Copy(_L("Allnet"));	}

		if(macFactory.Compare(_L("0:c:55"))==0){	FirmaRueckgabeName.Copy(_L("Foto Automat"));	}

		return FirmaRueckgabeName;
	}


TBuf16<32> CBlueJackXAppUi::DeviceFirma(TBTDevAddr btDevAddr)
	{
		_LIT16(meinstring,"");
		TBuf16<32> FirmaRueckgabeName(meinstring);

		TBuf<65> macFactory;	
		macFactory.Format(_L("%x:%x:%x"), btDevAddr[0], btDevAddr[1],btDevAddr[2]);

		FirmaRueckgabeName = FirmenListe(macFactory);

		return FirmaRueckgabeName;
	}


void CBlueJackXAppUi::ShowDeviceDetails(TBuf16<300>message)
	{
		CAknMessageQueryDialog* dlg = CAknMessageQueryDialog::NewL(message);
		dlg->SetHeaderTextL(_L("Device Info")); 
		dlg->ExecuteLD(R_ABOUT); 
	}

⌨️ 快捷键说明

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