none
win ce5.0中如何实现蓝牙的关闭与打开?(我在网上搜索了很长时间,没有解决办法,请高手支招,或提示即可,谢谢) RRS feed

  • 问题

  •  win ce5.0中如何实现蓝牙的关闭与打开?就是让我的设备可以被控制(是否能被其他人搜索到),我在网上搜索了很长时间,没有解决办法。难道是win ce5.0固有的问题。反正在mobile上是可以的(bthsetmode函数)。

    山雨
    2009年2月21日 2:24

答案

  •  wince5.0不知道,6.0是可以通过BTD的IOCTROL来开关蓝牙。

    static BOOL BTDEnable(BOOL bEn)
    {
     BOOL bRet = FALSE;

     HANDLE hService = CreateFile(L"BTD0:", GENERIC_READ | GENERIC_WRITE,
      FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
     
     if(hService == INVALID_HANDLE_VALUE)
     {
      RETAILMSG(1, (TEXT("Device not loaded")));
      return bRet;
     }

     WCHAR *argPtr = L"card";
     
     if (!bEn) //Disable 
     {
      if (DeviceIoControl(hService, IOCTL_SERVICE_STOP, argPtr, sizeof(WCHAR)*(wcslen (argPtr) + 1),
       NULL, 0, NULL, NULL))
      {
       bRet = TRUE;
      }
      else
      {
       bRet = FALSE;
      }
     }
     else //enable
     {
      if (DeviceIoControl(hService, IOCTL_SERVICE_START, argPtr, sizeof(WCHAR)*(wcslen (argPtr) + 1),
       NULL, 0, NULL, NULL))
      {
       bRet = TRUE;
      }
      else
      {
       bRet = FALSE;
      }
     }

     CloseHandle(hService);

     return bRet;
    }

    2009年3月20日 8:58