RFCOMM API를 사용하여 UWP (Windows 태블릿)에서 다른 모바일 (모든 모바일 안드로이드/윈도우)으로 이미지 (jpeg)를 보내려고했습니다.유니버셜 윈도우 응용 프로그램 블루투스 지원
내 응용 프로그램에서는 소켓 작성이 성공하고 socket outputstream에 쓰면 파일 크기 값이 반환 값으로 제공됩니다 (성공이라고 생각하십시오).
수신자 측에서는 수신/수신을 표시하지 않으므로 해당 장치에서 파일을 볼 수 없습니다.
또한 앱 매니페스트에 기능을 추가했습니다.
<DeviceCapability Name="bluetooth.rfcomm">
<Device Id="any">
<Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB" />
</Device>
</DeviceCapability>
C# 코드는 :
async void Initialize()
{
var services = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(
RfcommDeviceService.GetDeviceSelector(
RfcommServiceId.ObexObjectPush));
if (services.Count > 0)
{
var service = await RfcommDeviceService.FromIdAsync(services[0].Id);
if (SupportsProtection(service))
{
_service = service;
Windows.Devices.Enumeration.DeviceAccessStatus accessStatus = await _service.Device.RequestAccessAsync();
if (accessStatus.Equals(Windows.Devices.Enumeration.DeviceAccessStatus.DeniedByUser))
{
await dialog.ShowAsync();
return;
}
dialog = new MessageDialog(_service.Device.Name);
await dialog.ShowAsync();
_socket = new StreamSocket();
await _socket.ConnectAsync(_service.ConnectionHostName, _service.ConnectionServiceName, SocketProtectionLevel.BluetoothEncryptionAllowNullAuthentication);
var picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.SuggestedStartLocation =
PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".jpeg");
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".png");
var file = await picker.PickSingleFileAsync();
if (file != null)
{
var stream = await file.OpenStreamForReadAsync();
byte[] bytes = new byte[(int)stream.Length];
stream.Read(bytes, 0, (int)stream.Length);
IBuffer buffer = bytes.AsBuffer();
uint test = await _socket.OutputStream.WriteAsync(buffer);
await _socket.OutputStream.FlushAsync();
_socket.Dispose();
dialog = new MessageDialog("Result :" + test.ToString());
await dialog.ShowAsync();
}
}
}
}
수신자를 쓰고 싶지 않습니다. 난 그냥 연결된 모든 장치에 파일을 보내고 싶었어요. 어떤 모바일 (안드로이드 또는 창문)에 내 Windows 태블릿처럼. – syam218