📄 bluejackxappui.cpp
字号:
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 + -