2016-08-30 99 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

鑑於這兩方......我將能夠在兩個方向上完全按照我想要的方式傳輸字節。