カラオケマシンがユーザーを記録し、ユーザーが電話で Bluetooth 経由でマシンに接続して録音をダウンロードできるようにするプロジェクトがあります。多くの読書、例、ドキュメントの後、私は32feet (カラオケはC# .NETで記述されています) を使用してみましたが、ファイルを送信する唯一の方法はObexWebResponseを使用することであり、一部の電話にはそのサービスがありません:
http://oi62.tinypic.com/153s8p5.jpg (Bluetooth OBEX ファイル転送からの画像)
これにより、プログラムがスローされ、例外が発生します(このコードは、ダイアログを邪魔にならないようにする前にビデオ ファイルの送信をテストし、ユーザーがカラオケ マシンとペアリングすると、より自動化するために、ここでの回答から取ったサンプルです) :
private void sendfile()
{
SelectBluetoothDeviceDialog dialog = new SelectBluetoothDeviceDialog();
dialog.ShowAuthenticated = true;
dialog.ShowRemembered = true;
dialog.ShowUnknown = true;
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "Select File";
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string m_pin = "";
Console.WriteLine(BluetoothSecurity.PairRequest(dialog.SelectedDevice.DeviceAddress, m_pin));
if (ofd.ShowDialog() == DialogResult.OK)
{
var uri = new Uri("obex://" + dialog.SelectedDevice.ToString() + "/" + ofd.FileName);
var request = new ObexWebRequest(uri);
request.ReadFile(ofd.FileName);
var response = (ObexWebResponse)request.GetResponse(); // << THIS THROWS AN EXCEPTION WITH THE ADDITIONAL INFORMATION: CONNECT FAILED.
response.Close();
}
else
{
MessageBox.Show("File Not Selected");
}
}
else
{
MessageBox.Show("Device Not Selected");
}
}
また、デバッガーは次のように表示します: http://oi62.tinypic.com/e6rpkg.jpg
OBEX に代わるものはありますか? すべての電話に対応するもの、または互換性のないデバイス用に OBEX を混在させる方法。
ネイティブの Windows アプリケーション([コントロール パネル] > [デバイスとプリンター] > [Bluetooth デバイス] > [デバイス名] > [ファイルを送信])を使用してファイルを送信したので、他の言語でも解決策がある場合、これは実際にはハードウェア関連の問題ではありません。またはライブラリで、これを実現する方法について指示を出してください。
お読みいただきありがとうございます。