2016-08-30 1 views
-4

Ich arbeite an einem Projekt, das eine Windows-Anwendung auf einem Desktop/Laptop-PC mit Bluetooth benötigt, um mit einem Android-Handy zu teilen Dateien auszutauschen. Ich möchte in der Lage sein, eine Datei vom PC zum Telefon und vom Telefon zum PC zu bekommen. Es kann durch einen Send auf beiden oder einen Senden/Empfangen von beiden erfolgen.Windows .NET auf dem PC Senden/Empfangen von Dateien von Android-Telefon o0ver Bluetooth

Ich arbeite in .NET auf dem PC und entweder Android Studio oder Xamarin (Visual Studio) auf dem Android-Handy.

Ich habe die 32feet SDKs angeschaut, und ich kann eine Datei vom PC mit OBEX senden, aber ich bin gezwungen, die Datei auf dem Android-Handy zu akzeptieren. Ich möchte eine Datei senden und sie entweder in ein Verzeichnis auf dem Telefon legen oder manuell in meinem Code auf dem Telefon mit einer Art von Empfänger in Android behandeln.

Ich schreibe beide Anwendungen ... native Telefon-App und Windows-Anwendung.

Was ich wirklich gerne tun würde, ist eine Art gemeinsames Verzeichnis auf dem Telefon. Die Telefon-App schreibt in ein bestimmtes Verzeichnis auf dem Telefon. PC fragt dieses Verzeichnis über Bluetooth ab und entfernt beim Lesen Dateien aus dem Verzeichnis. Die PC-Anwendung schreibt dann Dateien in dieses Verzeichnis auf dem Telefon, für das die Telefon-App abfragt/liest.

Irgendwelche Beispiele für etwas Ähnliches? Oder etwas, das mir helfen wird, diese Aufgabe zu erfüllen?

.......

ich den downvotes bin zu sehen ... hier einige Code verwende ich eine Datei auf das Telefon zu senden. Ich muß wissen, wie das mit einem Empfänger am Telefon automatisch zu übernehmen und die Datei auf der Festplatte auf dem Handy schreiben ...

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 

Was ich suche die Fähigkeit zu schreiben, gerade in einen Ordner auf das Telefon oder wie Sie die Datei mit einer App am Telefon erhalten.

Und ich brauche auch das gleiche vom Telefon zurück auf den PC ..

wären Alle Kommentare/Vorschläge hilfreich ...

Antwort

0

zu tun, um die Lage sein, jede in der Nachwelt zu helfen ...

PC-Seite der Dinge ....

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 Seite der Dinge .... https://github.com/xamarin/monodroid-samples/tree/master/BluetoothChat

Angesichts dieser beiden Seiten ... Ich bin in der Lage, Bytes über die Linie in beiden Richtungen genau wie ich will übertragen.

Verwandte Themen