Just found that this bug in Android is causing problems for my OWL / OWLdroid syncing.
Issue 38282 – Android MTP support does not show recent files until the device is
rebooted.
Basically, when OWLdroid creates a new page, it writes a new OPML file to the Android’s local storage. But because Android now has some fairly complicated abstraction layers between your program and storage, including caching of directory listings, it means that although the file is there, not everything can see it.
I’ve been noticing this problem, possibly for a while.
Initially, I thought there were still a couple of (fairly infrequent and hard to reproduce) issues with the btsyncing between OWLdroid and my machine.
Then, the btsync seemed to break altogether as it seems that it can no longer work on the same directory that OWL does. (It’s not Bittorrent Labs’ fault, it semes there’s been a change to Android that restricts where apps. can write)
So I planned to update OWLdroid to be more compatible.
In the meantime, as a work-around I was syncing the directories via USB cable and meld. I used meld rather than rsync because it sees the MTP protocol which Android uses to connect to a PC.
However, today I was confronted with a mystery that brought me up short : meld could see and work on all pages except a new page I’d created two days ago on the Android device, which was invisible to it.
Huh?
I could see the same file in Ghost Commander (my Android file-system explorer). But meld couldn’t see it. Further investigation showed that not even Nautilus (via. MTP) could see it. Or any subsequent pages I created.
After a bit of Googling, I discovered the bug linked above. Something that was been reported to Google two years ago and still doesn’t seem important enough to fix.
As far as I can tell, it’s a cache refresh when a file is created or rewritten. Obviously it OUGHT to be fairly simple to fix. Or if automatic refreshing is not the desired behaviour, at least to have an option in the Android file-system API that can force it.
Otherwise, Android become useless for any app. which is working on files. And while Google’s priorities may be elsewhere (the conspiracy theorist in me wonders if they’re trying to drive everyone towards their cloud storage), surely they can’t hope for Android to take off as an ecosystem which people can use to do real work (say, in the enterprise), if you can’t write apps. that reliably work on files (and have your changes seen by connected machines).
Anyway, it’s frustrating. And until I see some way to reliably solve this problem, it certainly knocks back the (already fairly leisurely, “when it’s ready”) release schedule for OWLdroid to public via the Play store. 🙁
Issue 38282 : Android MTP support does not show recent files until the device is rebooted
by