Review Request 122020: Make a bluetooth backend for Android
Saikrishna Arcot
saiarcot895 at gmail.com
Fri Jan 16 18:14:49 UTC 2015
> On Jan. 13, 2015, 8:33 a.m., Albert Vaca Cintora wrote:
> > src/org/kde/kdeconnect/Backends/BluetoothBackend/BluetoothLink.java, lines 157-160
> > <https://git.reviewboard.kde.org/r/122020/diff/2/?file=341485#file341485line157>
> >
> > If the np doesn't have a payload (which is what happens most of the times, payloads are only used when sending binary data like entire files) you are actually not sending anything! Don't worry about payloads yet, and start by implementing sending and receiving simple packages.
>
> Saikrishna Arcot wrote:
> Ok. I didn't really understand the distinction between the payload and the (unserialized) message. I've changed the code to send a message and to print an error message if there is a payload.
>
> Saikrishna Arcot wrote:
> According to the KDE code, the network package messages are separated by a newline. Can the newline character be used to indicate the end of a message?
>
> Albert Vaca Cintora wrote:
> Yes, a new line should de fine instead of the ENDOFTRANSMISSION, because the serialized NetworkPackage are guaranteed to not contain any newlines. However, if you use the same socket to transmit the payloads you can have some problems (with both \n and ENDOFTRANSMISSION, because potentially we could transfer a text file containing ENDOFTRANSMISSION written on it!)
I realized that, and I think I have an idea:
1. Send info indicating that a payload is about to be sent.
2. Send the size of the payload (in bytes).
3. Read in that many bytes.
It's partly based on how QDataStream stores lists (and other binary data).
- Saikrishna
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/122020/#review73905
-----------------------------------------------------------
On Jan. 16, 2015, 6:14 p.m., Saikrishna Arcot wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/122020/
> -----------------------------------------------------------
>
> (Updated Jan. 16, 2015, 6:14 p.m.)
>
>
> Review request for kdeconnect.
>
>
> Repository: kdeconnect-android
>
>
> Description
> -------
>
> (Note that this isn't ready for merging yet.)
>
> This is an initial implementation of a bluetooth backend. This backend implementation can be run only on Android 4.0.2 or higher. The implementation as-is only looks at already-bonded devices; it does not start a discovery session to see other bluetooth devices nearby.
>
> There are several things that need to be worked out.
>
> 1. When requesting permission to enable Bluetooth (if it's not already enabled), `startActivityForResult` needs to be called. However, this must be called by a class that implements `Activity`. One possible solution is to call this on the home screen. Another is to just not request it.
> 2. I believe starting a discovery session also requires calling `startActivityForResult`, which has to be called from a class that implements `Activity`. The same solutions for the previous item exist here.
> 3. Options for enabling the Bluetooth backend need to be added to the settings window.
> 4. Some sections of code may warrant a new thread being created, as they may take a while to run.
>
>
> Diffs
> -----
>
> AndroidManifest.xml 6cbe4a7830cfe416fe98e42be143c0f26f2bf1e8
> src/org/kde/kdeconnect/Backends/BluetoothBackend/BluetoothLink.java PRE-CREATION
> src/org/kde/kdeconnect/Backends/BluetoothBackend/BluetoothLinkProvider.java PRE-CREATION
> src/org/kde/kdeconnect/BackgroundService.java 576425cf568e4b223d9840842803d7adabf6b990
>
> Diff: https://git.reviewboard.kde.org/r/122020/diff/
>
>
> Testing
> -------
>
> Installed on my Android 4.1.2, and it correctly detected that there are 2 bonded devices. No crashes.
>
> Note that since the KDE side doesn't have a bluetooth backend, much of the code wasn't executed.
>
>
> Thanks,
>
> Saikrishna Arcot
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdeconnect/attachments/20150116/356d9aad/attachment.html>
More information about the KDEConnect
mailing list