Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt RFCOMM服务器对其他设备不可用-Symbian3_Qt_Bluetooth_Symbian_Rfcomm_Spp - Fatal编程技术网

Qt RFCOMM服务器对其他设备不可用-Symbian3

Qt RFCOMM服务器对其他设备不可用-Symbian3,qt,bluetooth,symbian,rfcomm,spp,Qt,Bluetooth,Symbian,Rfcomm,Spp,我正在尝试用Symbian配置RFCOMM服务器 看看我的代码,似乎我没有遗漏任何东西,但其他设备就是看不到我的服务 我用笔记本电脑列出了手机上所有可用的蓝牙服务,但没有 有人能帮我吗 代码如下: void BtServer::StartServicoL() { TProtocolDesc pdesc; User::LeaveIfError(iSocketServer.FindProtocol(NOMERFCOMM(), pdesc)); iState = EFindin

我正在尝试用Symbian配置RFCOMM服务器

看看我的代码,似乎我没有遗漏任何东西,但其他设备就是看不到我的服务

我用笔记本电脑列出了手机上所有可用的蓝牙服务,但没有

有人能帮我吗

代码如下:

void BtServer::StartServicoL()
{

   TProtocolDesc pdesc;
   User::LeaveIfError(iSocketServer.FindProtocol(NOMERFCOMM(), pdesc)); 

   iState = EFindingAvailablePort;
   User::LeaveIfError(iListeningSocket.Open(iSocketServer, NOMERFCOMM));

   User::LeaveIfError(iListeningSocket.GetOpt(KRFCOMMGetAvailableServerChannel, KSolBtRFCOMM, iPort));

   iState = EBinding;
   iBtSocketAddr.SetPort(iPort);
   User::LeaveIfError(iListeningSocket.Bind(iBtSocketAddr));
   User::LeaveIfError(iListeningSocket.Listen(1));  

   iServiceAdvertiser->StartL(iPort);

   iBtSocketAddr.SetSecurity(iBtSecurity);

   iAcceptingSocket.Close();

   User::LeaveIfError(iAcceptingSocket.Open(iSocketServer));

   iListeningSocket.Accept(iAcceptingSocket, iStatus);   

   SetActive();

}

void CBluetoothServiceAdvertiser::StartL(const TInt aPort)
{

   iPort = aPort; 

   iState = EConnecting;
   User::LeaveIfError(iSdpServ.Connect());
   User::LeaveIfError(iSdpDatabase.Open(iSdpServ));

   TUUID serviceUUID(UUID_SERVICE);

   iSdpDatabase.CreateServiceRecordL(serviceUUID, iRecordHandle);

   CSdpAttrValueDES* protocolDescriptorList = CSdpAttrValueDES::NewDESL(NULL);
   CleanupStack::PushL(protocolDescriptorList);

   TBuf8<TAM_MAX_NRO_PORTA> port; 
   port.Append((TChar)iPort);

   protocolDescriptorList
         ->StartListL()
            ->BuildDESL()
               ->StartListL()               
                  ->BuildUUIDL(KRFCOMM) 
                  ->BuildUintL(port)    
               ->EndListL()             
         ->EndListL();              


   iSdpDatabase.UpdateAttributeL(iRecordHandle, KSdpAttrIdProtocolDescriptorList, *protocolDescriptorList);
   CleanupStack::PopAndDestroy(protocolDescriptorList);

   iSdpDatabase.UpdateAttributeL(iRecordHandle, KSdpAttrIdBasePrimaryLanguage + KSdpAttrIdOffsetServiceName, NOME_SERV);

   iSdpDatabase.UpdateAttributeL(iRecordHandle, KSdpAttrIdBasePrimaryLanguage + KSdpAttrIdOffsetServiceDescription, DESC_SERV);

   CSdpAttrValue* attrVal = NULL;

   TBuf8<TAM_MAX_SERV_DISP> avail;

   avail.FillZ(1); 

   avail[0]=0xff;  

   attrVal = CSdpAttrValueUint::NewUintL(avail);

   CleanupStack::PushL(attrVal);
   iSdpDatabase.UpdateAttributeL(iRecordHandle, KSdpAttrIdServiceAvailability, *attrVal);
   CleanupStack::PopAndDestroy(attrVal);

}
void BtServer::StartServicoL()
{
tprotocollec-pdesc;
用户::LeaveIfError(iSocketServer.FindProtocol(NOMERFCOMM(),pdesc));
iState=EFindingAvailablePort;
用户::LeaveIfError(iListeningSocket.Open(iSocketServer,NOMERFCOMM));
用户::leaviferor(iListeningSocket.GetOpt(KRFCOMMGetAvailableServerChannel,KSolBtRFCOMM,iPort));
iState=EBinding;
iBtSocketAddr.SetPort(iPort);
用户::LeaveIfError(iListeningSocket.Bind(iBtSocketAddr));
用户::LeaveIfError(iListeningSocket.Listen(1));
iServiceAdvertiser->Start(iPort);
iBtSocketAddr.SetSecurity(iBtSecurity);
iaceptingsocket.Close();
用户::LeaveIfError(iaceptingsocket.Open(iSocketServer));
iListeningSocket.Accept(IAceptingSocket,iStatus);
SetActive();
}
void CBluetoothServiceAdvertiser::start(const TInt aPort)
{
iPort=aPort;
iState=电子连接;
User::LeaveIfError(iSdpServ.Connect());
用户::LeaveIfError(iSdpDatabase.Open(iSdpServ));
TUUID服务UUID(UUID_服务);
CreateServiceRecordL(serviceUUID,iRecordHandle);
CSdpAttrValueDES*protocolderScriptorList=CSdpAttrValueDES::NewDESL(NULL);
CleanupStack::push(protocolderscriptorlist);
TBuf8端口;
端口追加((TChar)iPort);
原编剧
->惊吓者()
->BuildDESL()
->惊吓者()
->BuildUUIDL(KRFCOMM)
->BuildUintL(港口)
->EndListL()
->EndListL();
UpdateAttributeL(iRecordHandle、KSDPAttridProtocoldScriptorList、*ProtocoldScriptorList);
CleanupStack::PopAndDestroy(原脚本列表);
UpdateAttribute论坛电话(iRecordHandle、KSdpAttrIdBasePrimaryLanguage+KSdpAttrIdOffsetServiceName、NOME_SERV);
更新论坛电话(iRecordHandle,KSdpAttrIdBasePrimaryLanguage+KSdpAttrIdOffsetServiceDescription,DESC_SERV);
CSdpAttrValue*attrVal=NULL;
TBuf8有效;
FillZ(1);
avail[0]=0xff;
attrVal=CSdpAttrValueUint::NewUintL(可用);
清除堆叠::PUSH(属性值);
UpdateAttributeL(iRecordHandle,KSdpAttrIdServiceAvailability,*attrVal);
CleanupStack::PopAndDestroy(attrVal);
}