저는 지역 부근의 모바일 장치를 찾아 식별하는 블루투스 스캐너를 작성하는 중입니다. C#을 사용하여이 작업을 수행 할 수 있습니까? 아니면 C/C++ API로 드롭 다운해야합니까? 내 응용 프로그램은 Windows XP 및 Vista를 대상으로합니다. 포인터는 높이 평가됩니다.Windows/.Net의 Bluetooth API?
감사합니다.
저는 지역 부근의 모바일 장치를 찾아 식별하는 블루투스 스캐너를 작성하는 중입니다. C#을 사용하여이 작업을 수행 할 수 있습니까? 아니면 C/C++ API로 드롭 다운해야합니까? 내 응용 프로그램은 Windows XP 및 Vista를 대상으로합니다. 포인터는 높이 평가됩니다.Windows/.Net의 Bluetooth API?
감사합니다.
PC에서 블루투스에 대한 한 가지 문제점은 사용중인 여러 BT 스택이 있고 주어진 시스템에서 어느 것이 사용 가능한지 알 수 없다는 것입니다. 가장 흔한 것은 Widcomm (현재 Broadcom)과 Microsoft (XP에 등장 함, 서비스 팩 중 하나 일 수 있음)입니다. 그러나 일부 BT 하드웨어 공급 업체는 BlueSoleil을 패키지로 제공하고 일부는 Toshiba를 사용합니다. 대부분의 동글은 MS 스택에서 작동하므로 내가 본 .NET 라이브러리는이를 사용하는 경향이 있습니다.
각 스택은 주변 장치를 찾아보고 서비스를 검색하는 완전히 다른 방식으로 검색 부분을 수행합니다.
만약 내가 하나의 접근법을 선택했다면 아마도 C++에서 발견을하고 .NET 용 인터페이스를 추가 할 것입니다.
32feet.net은 잘 시도했지만 Widcomm 스택을 지원하지 않았습니다.
참고로 찾을 수있는 유일한 관리 형 BlueTooth API는 here입니다.
피터 발의 32feet.net
http://inthehand.com/content/32feet.aspx
도있다는 1.5 버전이었고, 그것이 잘 작동 할 때 나는이 다시 주위 연주했습니다.
저는 Windows 모바일 응용 프로그램에서 32feet.net 라이브러리를 사용하고 있으며 실제로 잘 작동합니다. – tjjjohnson
Mike Petrichenko에는 멋진 BT 프레임 워크가 있습니다. BlueSoleil, Widcomm, Toshiba 및 Microsoft에서 작동합니다.
이제는 무선 통신 라이브러리라고하며 Bluetooth 802.11 및 적외선과 함께 작동합니다. Mike는 회사 이름을 Soft Service Company로 지정하고 소스 코드 유무에 관계없이 비영리 및 상업 라이센스를 $ 100 ~ $ 2050에 판매합니다.
프로젝트에 32feet을 사용하고 SPP 장치에 연결하는 데 많은 임의 오류가 발생했습니다. 나는 WCL 데모를 시도했고 훨씬 더 잘 작동하는 것처럼 보였다. – JoelHess
블루투스 장치를 알고 PC에서 블루투스 장치로 파일을 보내는 가장 좋은 방법은 해당 코드를 사용하는 것입니다.
public void ExecuteCommandSync(object command)
{
try
{
// create the ProcessStartInfo using "cmd" as the program to be run,
// and "/c " as the parameters.
// Incidentally, /c tells cmd that we want it to execute the command that follows,
// and then exit.
System.Diagnostics.ProcessStartInfo procStartInfo =
new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);
// The following commands are needed to redirect the standard output.
// This means that it will be redirected to the Process.StandardOutput StreamReader.
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
// Do not create the black window.
procStartInfo.CreateNoWindow = true;
// Now we create a process, assign its ProcessStartInfo and start it
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo = procStartInfo;
proc.Start();
// Get the output into a string
string result = proc.StandardOutput.ReadToEnd();
// Display the command output.
Console.WriteLine(result);
}
catch (Exception objException)
{
// Log the exception
MessageBox.Show(objException.Message);
}
}
당신은
string command = "fsquirt";
ExecuteCommandSync(command);
그래서, BluetoothFileTransferWizard 표시로이 메소드를 호출 할 수 있으며, 해당 장치를 보내기 위해 사용 가능한 장치를 선택하고 파일을 보낼 수 있습니다. 그런 식으로 사용하고 싶지 않으면 32feet.net.uk을 시도하십시오. 그것은 C# 및 VB.NET의 블루투스 개발에 적합했습니다.
또한 Windows 10에서 32Feet을 시도하고 "32feet.NET이이 장치에서 Bluetooth 스택을 지원하지 않습니다. " 문제를보고했지만 2 년 후에 프로젝트가 업데이트되지 않은 것 같습니다. – LawMan
@LawMan Windows 10과 비슷한 문제가있었습니다. 원인은 Bluetooth가 꺼져 있다는 것입니다. –
@Juozas Kontvainis 그게 내가 제일 먼저 확인한 것. 비록 내 코드가 쌍을 이루지 않는다면 (또는 적어도 lol로 사용되는) 장치를 페어링 할지라도 Windows가 장치와 성공적으로 페어링되어 코드를 실행했는지 확인했습니다. 또한 32Feet은 아직 내 문제에 응답하지 않았습니다. 관심있는 사람이 있다면 여기에 문제 링크가 있습니다. https : //32feet.codeplex.com/workitem/43236 – LawMan