We have moved to a new Sailfish OS Forum. Please start new discussions there.
374

Bluetooth file transfer for all file types [answered]

asked 2013-12-25 16:24:09 +0200

pnuu gravatar image

updated 2014-01-10 19:01:36 +0200

lk gravatar image

Currently it's possible to send images, videos and contacts, but not music files, via bluetooth. More generalized file transfer should be added, atleast to Settings -> System settings -> Bluetooth -> pulley menu -> "Send file", and naturally the file browser.

edit retag flag offensive reopen delete

The question has been closed for the following reason "the question is answered, an answer was accepted" by olf
close date 2019-10-19 18:21:32.818752

Comments

15

This is important. A deal breaker if not fixed, imo

Glenn9K ( 2013-12-25 20:36:56 +0200 )edit
15

Yes, definitely this is important!

LaruX ( 2013-12-26 14:53:49 +0200 )edit
3

Not high priority at the moment in my opinion. But something I hope to have in the future. Enjoyed it a lot that I could send and receive everything with Nokia N9. Pully menu with "Send file" is a very good idea and would enrich the idea of the Pully menu a lot.

molan ( 2014-01-07 19:31:36 +0200 )edit
11

It would be nice to have it in File Browser.

SaimenSays ( 2014-03-01 21:09:02 +0200 )edit
5

It should be a have to be in the MediaPlayer analog to Galerie

michaelmischke ( 2014-04-19 00:05:51 +0200 )edit

15 Answers

Sort by » oldest newest most voted
43

answered 2014-10-09 11:58:20 +0200

leszek gravatar image

updated 2014-10-09 11:59:28 +0200

We developers need an API for that honestly speaking. So that every app has the option to share data. This share option would then open up a share page with all apps and services that allow sharing like bluetooth, dropbox, facebook, flickr and so on. Apps that support sharing should provide an extra .desktop file in a specific directory with the command needed for sharing files with it. Everything else would be a workaround for now.

edit flag offensive delete publish link more

Comments

11

I totally agree with this. I was trying to send a .zip file to my girlfriend's Jolla from my own, and thought it would be a trivial task using bluetooth. That feel when I realized, that it just couldn't be done without some retarded "change the file extension and use the gallery to share via bluetooth"-bubblegum-duct tape-MacGyver-workaround. When talking about basic functionality, I'd call data sharing basic. I honestly think that I speak on behalf of the majority of users, when I say that I really don't care if the phone can brew great coffee on the dark side of the moon using only moon dust and subatomic magic particles, when basic functionalities are missing or broken.

Movetron ( 2015-01-03 18:30:22 +0200 )edit
16

answered 2015-07-11 14:34:07 +0200

AliN gravatar image

updated 2015-07-11 14:49:10 +0200

Currently the file manager app FileCase from Warehouse can send any single file via bluetooth.

edit flag offensive delete publish link more

Comments

7

Good tip, thank you! It's just a bit sad that we have to rely on so many 3rd party apps instead of having them implemented as functionality in Sailfish directly

PatsJolla ( 2015-07-11 14:55:32 +0200 )edit
3

@AliNa FileCase sends photos videos music even jar files but still the bluetooth protocol on sailfish has some limitations like sending multiple files via bluetooth which is simply ridiculous, and more so, there are some files that are not able to be sent like jad files for instance, I think the limitations on file transfer should simply be removed and allow users to send what ever they desire. When I requested Cepi implements the multiple files transfer through bluetooth he cannot do that as sailfish doesn't allow it just yet

DameCENO ( 2015-08-08 16:44:56 +0200 )edit

@DameCENO, I also have difficulties sending text files. I don't know if the problem is in Sailfish or in FileCase, I just change the extension and it works.

Sending multiple photos from Gallery is on the roadmap for 2015 Q3, and I hope the problem you mentioned will be solved this way.

AliN ( 2015-08-08 17:21:32 +0200 )edit
1

Yes but what about receiving files ? Tried to send a .apk file from a sgs3 .. doesn't work, the phone doesn't ask anything.

malibu1106 ( 2015-11-03 15:08:30 +0200 )edit

I send and receive apk files from and to my jolla without problems, are you sure the bluetooth was turned on? Try pairing with the other device before sending the file if you encounter problems, I know for a fact that receiving apk or sending them through bluetooth is not not an issue on jolla. Sending multiple files on the go is the issue, as well as the ability to send or receive any file format as it was done on MeeGo

DameCENO ( 2015-12-26 16:09:43 +0200 )edit
12

answered 2018-11-10 04:11:36 +0200

olf gravatar image

updated 2019-10-09 04:46:49 +0200

Table of contents


Sending files per OBEX

(the original question)

Any filtering for "supported" file or MIME types seems to be done by an application (or a high-level application framework it uses, e.g. Qt), but not by the OBEX implementation (per obexd in bluez 4 and 5).
Hence complaints about specific apps limiting the types of files to share via Bluetooth should be filed a separate issues for these apps, IMO.

The awkward mini-filemanager in Settings -> Storage -> Mass memory -> [Top pulley] File manager seems to share any file via Bluetooth in recent SailfishOS versions, as Filecase (unmaintained, does not start up without patching since SailfishOS 2.2.0) definitely did on older SailfishOS versions.
You might file a feature request for your favorite file-manager to support unrestricted sharing of files via Bluetooth.


Sending multiple files via Bluetooth


As the OBEX (aka "IrDA compatibility") specification only supports sending one file at a time, selecting multiple files and sending them one-by-one also has to be implemented on application (or framework) level. No SailfishOS app provides this feature yet, AFAIK.
You might file a feature request for your favorite file-manager to support this, too.


Receiving arbitrary files


Edit / update (2019-10-03)


As this enduring situation is annoying, I created obexd-contentfilter-off, which automatically does what is described in the original answer (2018-11-10) below.
For easy installation (e.g., per Storeman), an RPM is available at OpenRepos.
As obexd-contentfilter-off obsoletes the original obexd-contentfilter-helper package, the need to check if the "dummy" obexd-contentfilter-helperapp script is still installed after a SailfishOS upgrade is also eliminated (compared to the manual deployment of the "dummy script" described in the original answer (2018-11-10) below).

Side note
While researching this issue in-depth, it became apparent that Jolla's position is understandable: It would be hard to sell SailfishOS licenses to companies and governments, if the Bluetooth software stack behaves non-compliant to the Bluetooth OBEX specifications.
Still I wish Jolla will enable users to switch the OBEX filter off at the GUI, some day.


Original answer (2018-11-10)


Oh, I completely forgot, that this was answered by @hmallat in a comment to my very first question on TJC (and also in his comment to another question).

Applying these five commands prevents any filtering for Bluetooth file transfers:

devel-su  # Become root
cd /usr/libexec
mv -v obexd-contentfilter-helperapp obexd-contentfilter-helperapp.orig  # Backup & delete by renaming
echo -e "#!/bin/sh\n\nexit 0" > obexd-contentfilter-helperapp  # Create a dummy helperapp, always returning O.K.
chmod +x obexd-contentfilter-helperapp  # Make it executable


Still, IMO Jolla should stop filtering for supported file types when receiving via BT file transfer in SailfishOS per default or offer a setting to disable this filter.

The current behavior ("Oops, uploading did not work!" on the sender's side) appears to be a non-functional Bluetooth file transfer (when trying to transfer an "unsupported" kind of file), because there is no indication why the BT file transfer went wrong!


Side notes

  • A functional (i.e., filtering) obexd-contentfilter-helperapp file may be reinstalled when upgrading SailfishOS.
    Repeat above commands, then.
  • Mind that Bluetooth file transfers may still fail for other reasons, most often due to Bluez instabilities (especially on Jolla 1 phones, still provided with Bluez4 by default).
edit flag offensive delete publish link more

Comments

2

awesome share man, could have done with this info for years. Giving it a try right now.

DameCENO ( 2018-11-13 15:01:08 +0200 )edit

Great that we have a community-supported answer, but I agree it should be an option under Settings-->Bluetooth, not a CLI hack.

sunburnedpenguin ( 2019-10-01 09:42:31 +0200 )edit
1

Wow, 5 years since the original question and still Jolla has their fingers wedged firmly up their arses - no wonder people get fed up and leave. Such a simple function, yet this bunch can't seem to get it together, "Couldn't hold a piss up in a brewery!" springs to mind

Spam Hunter ( 2019-10-01 11:32:14 +0200 )edit
7

answered 2017-12-12 18:41:05 +0200

olf gravatar image

updated 2019-10-09 04:42:50 +0200

Still not able to send or receive any (i.e., arbitrary) file type via Bluetooth (under SFOS 2.1.3.7, four years after this issue has been originally addressed)!
E.g., file types rpm, xml, tar, gz and many more fail to be transferred.

Even worse is that SailfishOS does not mention the real reason (which is "unsupported file type"), but displays exactly the same error message which occurs when there is a Bluetooth connection error ("Oops, uploading did not work!") on the sender's side. Furthermore connection errors often occur when trying to transfer larger files (> 1 MB).
Hence it is impossible for the user to distinguish an unsupported file type error from a real Bluetooth connection error.

Please ultimately fix the file type limitations by allowing any file type to be transferred via Bluetooth.

P.S.: Yes, I know how to workaround this by appending a supported extension to the file I am going to transfer. But I regularly forget and this is really awkward for a Smartphone!

P.P.S. / Edit (2019-10-09):
The proper, generic and permanent solution is to eliminate any file type filtering for Bluetooth file transfers.

edit flag offensive delete publish link more
6

answered 2015-04-13 21:37:27 +0200

dingo gravatar image

For me it is a big problem. I tried to send a mp3 file to my friend ..it was a big shame:(

edit flag offensive delete publish link more
6

answered 2015-08-01 18:35:35 +0200

DameCENO gravatar image

I cannot agree more, honestly how can something as basic as bluetooth file share is a bug or limitation on sailfish, I am so disappointed. I do hope it is the priority of any future update for crying out loud!!! Yet Sailfish rocks, best os ever, and after all the little bug fixes in your numerous updates... I can't even begin to imagine how beautiful it would be...

edit flag offensive delete publish link more
6

answered 2016-10-27 15:01:38 +0200

jovirkku gravatar image

A partial fix for this issue was delivered in update 2.0.4. We know that it is still not possible to share all file types (but most of them), including .html, .qml, .log, .json and files lacking an extension. However, it is possible to share json and log files, for instance, by adding the extension .txt to them. Investigations are carried on. Hopefully this issue can be fixed completely.

edit flag offensive delete publish link more

Comments

2

Thanks for the official statement. I'm actually wandering why the filetype is an issue at all... usually I can transfer any file if I , for example, add the extension .jpg or any other supported extension. So the file is not getting analyzed...

PatsJolla ( 2016-10-27 15:18:26 +0200 )edit
1

@jovirkku Unfortunately Sailfish OS also does not support multiple file transfer since there is no option to select more than one file in the file browser.

Alex ( 2016-12-27 18:39:31 +0200 )edit
2

@jovirkku, sorry to say your answer sounds awkward in October 2019:

  • This question was asked in December 2013, has received 367 up-votes (October 2019) and many emotional comments.
  • The former SailfishOS' Bluetooth-maintainer @hmallat provided proper reasons to filter for supported MIME-types (and in his subsequent comments there) in September 2014.
  • He also provided a rough description of a workaround in the aforementioned thread in October 2014 and again in the first comment to this question in June 2015, which was the base for a little how-to for beginners.
  • Still you state in October 2016, "Investigations are carried on. Hopefully this issue can be fixed completely."

This sounds as if a clear, rather political choice should be made by Jolla (as the technical aspects have been sufficiently discussed) between these three options:

  1. Keep the status quo, but clearly state that Bluetooth file transfers (per OBEX) support only registered MIME-types for adhering to the specification(s) of that BT-SIG.
  2. Cease to interpret these statements in the OBEX specification(s) as mandatory and eliminate the deliberate filtering for supported (i.e., registered) MIME-types.
  3. Implement a new setting (e.g., "Allow all file types" in Settings -> Bluetooth), which defaults to off to provision SailfishOS in a compliant state.

Taking any of these options is better than leaving this issue open and undecided / without uttering a decision, IMO.


P.S.: The relevant Bluetooth specifications are the OBEX aka IrDA Interoperability (IrOBEX) (v2.0, 26 Aug 2010), the Generic Object Exchange Profile (GOEP) (v2.1.1, 15 Dec 2015) and the Object Public Profile (OPP) (v1.2.1, 15 Dec 2015) specification (the latter does not seem to be publicly available, only the aspects essential for implementing the OPP are).

olf ( 2019-10-02 01:02:30 +0200 )edit
5

answered 2016-10-23 10:59:50 +0200

thisisme gravatar image

This has been implemented in 2.0.4 release through Settings app -> Storage -> File manager (from pulley menu) -> long press on a file and select 'Share', Bluetooth option is available.

edit flag offensive delete publish link more

Comments

2

You are right but IMO it's not fully implemented yet since you are still unable to send multiple files at once and still not all file types are supported e.g. qml and html files are not supported: https://together.jolla.com/question/148849/bug-bluetooth-is-not-present-in-share-page-for-qml-and-html-files/.

Also this bluetooth file sharing additionaly should be included into the relevant native apps (e.g. in the native media app to share music directly from it).

Alex ( 2016-10-23 12:46:33 +0200 )edit
2

Maybe close this question and write new ones for specific features like those you mentioned then? Or tag it as partially implemented or something. I don't think sharing .qml or .html files via bluetooth is a very common use case... What other file types are not supported?

thisisme ( 2016-10-26 10:02:27 +0200 )edit
4

answered 2019-09-30 23:41:19 +0200

just bumping up

as when switching devices or after reset (yep, had to do it after failed update once) I do like to transfer a lot of differen items

and we are 5 (FIVE) years later!

edit flag offensive delete publish link more

Comments

2

The answer and solution are already here (in this very TJC thread)!
See my comment 2018-11-13 to the original question for an explanation and the link there for a solution.

olf ( 2019-10-01 01:09:01 +0200 )edit
1

Thanks olf. I did know/re-read about this workaround. But after "downgrading" to XA2 I just forgot to apply that.

My personal patches folder is growing and growing ...

Just found accidentally this answer of you from Dec 2017 https://together.jolla.com/question/1302/bluetooth-file-transfer-for-all-file-types/?answer=175986#post-id-175986 and this is still valid, right?

(I do hate this time cluttered comment/answer game - okay, must have had a different sort configured! :) )

peterleinchen ( 2019-10-01 09:33:03 +0200 )edit
4

Great that we have a community-supported answer, but I agree it should be an option under Settings-->Bluetooth, not a CLI hack.

sunburnedpenguin ( 2019-10-01 09:41:08 +0200 )edit
1

@peterleinchen, there seems to be some confusion navigating this thread, as you wrote:

"Just found accidentally this answer of you from Dec 2017 [...]"

... which details the complaints on the technical side, but does not solve anything.

That is why I tried to direct you to my comment 2018-11-13 (currently the last one at the original question) and the real answer (with solution), which I provided 2018-11-10 (and I linked to in yesterdays comment above and my comment 2018-11-13 to the original question; recognising and using these web-links seems to be hard, thus this comment is without any ;\ ).

olf ( 2019-10-01 16:10:41 +0200 )edit
4

answered 2019-10-06 22:55:51 +0200

deloptes gravatar image

Hi, I will up vote this in the hope that we get our voice heard.

In fact looking some time ago into the BT stack implementation it was clear that only OPP is implemented, while file transfer is not, because it needs all the things mentioned in the answers API, integrated APP etc.

I was even thinking I would find some time to write the server part, but not likely before next year. If someone is willing to share burden let me know. However, I mentioned already before on the dev list. Jolla needs to set the path in such a work (API), so that we work in unified manner.

sdptool search FTP <BT MAC>
Inquiring ...
Searching for FTP on <BT MAC> ...

sdptool search OPUSH <BT MAC>
Inquiring ...
Searching for OPUSH on <BT MAC> ...
Service Name: Object Push
Service RecHandle: 0x10007
Service Class ID List:
  "OBEX Object Push" (0x1105)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
     Channel: 9
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX Object Push" (0x1105)
    Version: 0x0102

You can have a look in the obexd - I do not recall, but I think FTP is enabled.

edit flag offensive delete publish link more

Comments

@deloptes,

  • for interoperability, it makes sense to focus on using "OBEX Object Push", as that is what almost all devices with Bluetooth support (Smartphones, Feature Phones, PCs etc.).
  • "OBEX Object Push" is also what Jolla's mini-filemanager (in Settings -> Storage -> Mass memory -> [Top pulley] File manager), Filecase and Jolla's Gallery app use.
    While Filecase's source code does not seem to be available and I have not looked for the sources of the two Jolla apps, what they do when sending a file via Bluetooth may be observed per strace and / or other means, in order to re-implement that in an app of your choice.
olf ( 2019-10-07 17:41:01 +0200 )edit

I don't know file case, but I know about the protocols. The missing features are all covered by the FTP. I do not know why it disappeared in Sailfish. It was there in N9 AFAIK.

OOP is simple to implement, but very limited - for example you can not specify destination and you can do only one file a time.

Also I do not feel like reverse engineering apps. There is a good bluetooth documentation of the interfaces and implementation of FTP server wouldn't be much of a work. The integration part might be however.

deloptes ( 2019-10-07 20:33:46 +0200 )edit

Question tools

Follow
34 followers

Stats

Asked: 2013-12-25 16:24:09 +0200

Seen: 10,187 times

Last updated: Oct 09 '19