2016-08-30 63 views
-4

我正在开发一个项目,该项目需要在具有蓝牙功能的台式机/笔记本电脑上运行Windows应用程序才能与Android手机通信以共享文件。我希望能够从PC获取文件到手机以及从手机到PC。它可以通过发送或者发送/接收来完成。PC上的Windows .NET从Android手机发送/接收文件o0ver蓝牙

我正在使用PC上的.NET以及Android手机上的Android Studio或Xamarin(Visual Studio)。

我已经看过了32feet的SDK,我可以通过OBEX发送一个PC上的文件,但我不得不接受Android手机上的文件。我想发送一个文件,然后将它放到手机中的目录中,或者在Android手机中用我的代码手动处理。

我正在写这两个应用程序......本地电话应用程序和Windows应用程序。

我真的很喜欢做的是手机上的某种共享目录。手机应用程序写入手机上的特定目录。 PC通过蓝牙轮询该目录,并在读取时从目录中删除文件。 PC应用程序然后将文件写入手机上的该目录以供手机应用程序轮询/阅读。

任何类似的东西的例子?或者是能够帮助我完成这项任务的东西?

.......

我看到了downvotes ...这里的一些代码,我使用的是发送一个文件到手机上。我需要知道如何使用手机上的接收器自动接受这一点,并写入文件到手机上盘...

Private Sub btnTestBeam1_Click(sender As Object, e As EventArgs) Handles btnTestBeam1.Click 

    Dim sbdd As New InTheHand.Windows.Forms.SelectBluetoothDeviceDialog 
    Dim ofdFileToBeam As New OpenFileDialog 
    sbdd.ShowAuthenticated = True 
    sbdd.ShowRemembered = True 
    sbdd.ShowUnknown = True 

    If sbdd.ShowDialog() = System.Windows.Forms.DialogResult.OK Then 

     If ofdFileToBeam.ShowDialog() = System.Windows.Forms.DialogResult.OK Then 

      Cursor.Current = Cursors.WaitCursor 
      Dim theuri As New Uri("obex://" + sbdd.SelectedDevice.DeviceAddress.ToString() + "/" + System.IO.Path.GetFileName(ofdFileToBeam.FileName)) 
      Dim request As New ObexWebRequest(theuri) 
      request.ReadFile(ofdFileToBeam.FileName) 

      Dim response As ObexWebResponse = CType(request.GetResponse(), ObexWebResponse) 
      MessageBox.Show(response.StatusCode.ToString()) 
      response.Close() 

      Cursor.Current = Cursors.Default 
     End If 

    End If 

End Sub 

什么我要找的是直接写入到一个文件夹的能力手机或如何通过手机上的应用程序接收文件。

而且我也需要能够从手机回PC做同样的..

任何意见/建议将是有益......

回答

0

帮助任何在后人...事情

PC端....

Dim connectserver As Thread 
Dim mstream As Stream 
Dim client As BluetoothClient 
Dim bluelisten As BluetoothListener 
Dim muuid As Guid = New Guid("fa87c0d0-afac-11de-8a39-0800200c9a66") 
Dim serverstart As Boolean = False 

Private Sub btnTestb1_Click(sender As Object, e As EventArgs) Handles btnTestb1.Click 
    If (serverstart) Then 
     updateui("server already started") 
    End If 

    connectasserver() 
End Sub 

Private Sub connectasserver() 
    connectserver = New Thread(New ThreadStart(AddressOf serverconnectedthread)) 
    connectserver.Start() 
End Sub 

Public Delegate Sub SetText(text As String) 

Private Sub updateui(mess As String) 
    If LabelTestb.InvokeRequired Then 
     LabelTestb.Invoke(New SetText(AddressOf updateui), mess) 
    Else 
     LabelTestb.Text = mess & vbCrLf & LabelTestb.Text 
    End If 
End Sub 

Private Sub serverconnectedthread() 
    Dim sent() As Byte 
    Dim recieved(1024) As Byte 

    serverstart = True 
    updateui("waiting for connections of clients\n") 
    bluelisten = New BluetoothListener(muuid) 
    bluelisten.Start() 
    client = New BluetoothClient() 
    client = bluelisten.AcceptBluetoothClient() 
    updateui("client has connected\n") 
    mstream = client.GetStream() 

    While (True) 
     Try 
      mstream.Read(recieved, 0, recieved.Length) 

      updateui("recieved: " + Encoding.ASCII.GetString(recieved)) 
      sent = Encoding.ASCII.GetBytes(" hello world\n") 
      mstream.Write(sent, 0, sent.Length) 
      sent = Nothing 
     Catch except As IOException 

      updateui("client has been disconnected\n") 
      connectserver.Abort() 
      client.Close() 
      mstream.Flush() 
     End Try 
    End While 

End Sub 

的事情Android的侧.... https://github.com/xamarin/monodroid-samples/tree/master/BluetoothChat

鉴于这两方......我将能够在两个方向上完全按照我想要的方式传输字节。

相关问题