I'm an avid user of the Aldiko eBook reader app and recently got myself a tablet. Naturally, I wanted to be able to read my books on my phone and the tablet. I hoped there would be something that would allow me to easily do this, but I only found a stale thread on the Aldiko support site that said they would support this feature sometime in the future.
Therefore, I present to you, my first Android app, Aldiko Sync that allows you to sync both your books and bookmarks across various Android powered devices.
** Note **
The app requires a rooted device to work with Aldiko v2.2.0+. This is because Aldiko no longer allows other apps access to its database.
** Note **
Requirements:
Android 2.2+
Aldiko 2.0.2+ (Free or Premium)
Rooted device (Aldiko 2.2.0+)
Dropbox account
Features:
Synchronizes eBooks across devices (including addition of new books and deletion of old books)
Synchronizes your position in each eBook across devices.
Pro Version: Fully automatic sync.
Pro Version: Faster sync check for changes on Dropbox.
Pro Version: Trigger sync from an external application (like a Tasker/Locale plugin).
Ability to store deleted books in a separate "TrashCan" folder on Dropbox in case you want to retrieve it at a later date.
Ability to always sync to furthest read point (like the Kindle).
Current Limitations:
User defined bookmarks are not synced across devices.
Now available on the market:
Aldiko Sync (Free)
Aldiko Sync Pro Unlocker (Paid)
FAQ:
Will books that I add directly to Dropbox be synced to my devices?
No, they won't. My sync app synchronizes books in the Aldiko library between devices, using Dropbox as a storage location.
I'd love to be able to add books directly to the Aldiko library as they are added to Dropbox but its not an easy task. Unfortunately, Aldiko doesn't expose any means to import books without user interaction. The import process is crucial because thumbnails and cover images are generated only during the import process. My sync app gets around this problem by just shuffling the images around to various devices once they have been created by the import process on one device.
One way to work around this limitation is to use the Dropbox PC and Android apps to keep the non imported books in sync between the PC and Android device by having them in a separate shared folder. Once the book is on the device, its fairly easy to import it into Aldiko. Once its in the library, my sync app will take care of the rest.
Sync is broken, and I don't want to root my device. What do I do?
If your device has KitKat (Android 4.x) or earlier, you can downgrade to Aldiko version 2.1.0, which does not require a rooted device. Instructions are available here: http://forum.xda-developers.com/showpost.php?p=35228923&postcount=362
Why is a sync operation started when I unlock my device?
A sync is performed on device unlock to sync down changes made to the Aldiko library by other devices.
The idea is to have all changes synced down to the device before Aldiko is opened. Ideally, this would be performed just before a book is opened in Aldiko. However, since the sync functionality is not built into Aldiko, this was the best method I could come up with to ensure the library was always kept in sync.
Why was the "Hide Status Icon" behavior changed?
Due to the way Aldiko is designed, a sync operation is not guaranteed to succeed if Aldiko is opened before it is complete. The icon is a an indication that its not "safe" to open Aldiko yet.
Why are changes made to a book on my device not propagating correctly to the other?
The most common reason for this is that one or more of the devices do not have the date/time set correctly. Having incorrect time settings on a device will cause sync to behave erratically.
The other reason could be that the "Sync To Furthest Point" is not consistently set across all devices.
How do I safely transfer my Aldiko Sync settings to another device (with Titanium Backup or similar apps)?
Turn off automatic sync on the device before backup.
Restore on new device (app + data).
Open sync app, click on Settings -> Reset State and enable automatic sync.
Run a manual sync operation to ensure all books are synced down to the new device correctly.
How do I recover books from the TrashCan folder into Aldiko?
From the device, use a brower or the Dropbox app to log into the Dropbox account.
Navigate to the book in the TrashCan folder.
Download the book to the device. The thumbnail/cover images are not needed.
Import the downloaded book into the Aldiko library.
Open the sync app and click on the Sync button to sync the "new" book to Dropbox.
Delete the folder that contains the book from the TrashCan folder on Dropbox.
How do I trigger a sync with Tasker?
This feature is available in the Pro Version.
Tasker allows you to have finer control over when a sync is triggered. Note that when a sync is triggered this way, the "Optimize Network Traffic" feature is disabled.
To trigger a sync with Tasker, you send commands to the app using a Tasker Action Intent.
When Tasker presents its list of Actions, select Misc Action, then Action Intent.
When tasker prompts for the 'Action', enter com.ucr.aldikosync.triggersync
The Category should remain at its default of None, and the optional Data field should be left blank.The Extra fields should also be left blank.
The Target field should remain at its default of Broadcast Receiver.
New Features:
9.0.6
Migrate Dropbox interface to new API, as the older version will be disabled on 28-Jun-2017.
8.18.20
Bug-Fix: Fix issue introduced with previous version on CyanogenMod ROM's.
8.18.18
Improve root acquisition compatibility.
8.18.14
Fix issue introduced in previous release: Sync waiting forever while acquiring root the very first time after install/upgrade on devices with Android OS 5.0 (Lollipop) and later.
8.18.10
Fix issue with acquiring root privileges on certain devices with Android OS 5.1.1 and later.
8.12.22
Updated app to fix issues on Android OS 6.0 (Marshmallow)
8.12.16
Bug-Fix: Fix issue with Drobox login form.
Android OS 2.1 (Eclair) no longer supported.
8.12.14
Bug-Fix: Fix issue with acquiring root on devices with CyanogenMod 12 ROM.
8.12.8
Bug-Fix: Fix issue with Dropbox login form.
8.12.1
Updated app to fix issues on Android OS 5.0 (Lollipop)
8.10.10
Bug-Fix: Fix connection issue with Dropbox servers.
8.10.8
Bug-Fix: Fix sync issues on certain rooted Samsung devices with custom ROM's.
Bug-Fix: (Pro Version) Fix sync not triggering when key guard was disabled on devices with Android OS 4.1 (Jelly Bean) or earlier.
Bug-Fix: Fix compatibility issue with Android OS 4.4 (KitKat)
8.10.2
Bug-Fix: Fix incompatibility issue on rooted MotoX and MotoG devices with Aldiko 2.2.0+.
Bug-Fix: Fix occasional failure to detect the existence of Aldiko's database on rooted devices during the sync app's first run.
8.9.4
Bug-Fix: Fix compatibility issue with databases created with Aldiko 3.0.2.
Bug-Fix: Fix for occasional crashes reported when showing warning dialog boxes.
Bug-Fix: Fix crash when trying to launch Aldiko from within the sync app due to corrupted Aldiko install.
8.9.2
Support for Dropbox's two-factor authentication.
Updated app to fix issues on Android OS 4.3 (JellyBean MR2)
8.8.8
Bug-Fix: Updated fix for Dropbox login form issue. Ensure form doesn't "freeze" if wrong data is entered the first time.
Bug-Fix: Fix occasional one-time crash on startup when app was upgraded/installed.
Bug-Fix: (Pro Version) Fix occasional crash on service restart.
Add ACCESS_SUPERUSER permission. Root is required if device has Aldiko 2.2.0 or later versions installed.
Bug-Fix: Fix issue with Dropbox login form on Gingerbread devices.
8.8.5
Bug-Fix: Fix issue with Dropbox login form on some devices.
8.8.3
Add support for Aldiko 2.2.3.
Add instructions for downgrading to Aldiko 2.1.0 if device cannot be rooted.
Bug-Fix: Fix occasional crash when the initial message dialog was dismissed.
Bug-Fix: Fix occasional crash when Dropbox login form was shown.
8.7.42
Bug-Fix: (Pro Version) Fix automatic sync not triggering reliably on quitting Aldiko on Android OS 4.1 (Jelly Bean) on some devices.
Bug-Fix: (Pro Version) Fix automatic sync being deactivated under certain circumstances when either the sync app or Aldiko was updated.
Bug-Fix: (Pro Version) Fix initial notification popup not being shown when Aldiko was quit with the "Home" key.
Bug-Fix: Fix network connection leak issue with the Dropbox API.
Display a one-time message explaining the rooted device requirement if Aldiko 2.2.0+ is installed on the device.
8.7.16
Bug-Fix: Fix notification popup always being shown on Android OS 4.2 (Jelly Bean MR1)
Bug-Fix: Fix occasional crash after Dropbox login was completed.
Bug-Fix: (Pro Version) Fix "application not responding" issue on rooted Android OS 4.1 (Jelly Bean) devices if user did not respond to the super user request in a timely manner.
Bug-Fix: (Pro Version) Fix main window sometimes being shown along with the notification on Android OS 4.1 (Jelly Bean).
8.7.4
Bug-Fix: Fix issue with Dropbox login not working correctly on some devices.
Bug-Fix: (Pro Version) Fix automatic sync not being triggered immediately on quitting Aldiko on Android OS 4.1.2 (Jelly Bean)
8.6.12
Bug-Fix: Fix issue with Dropbox login under certain circumstances.
Bug-Fix: Fix issue with deleting Dropbox folders, when they were not empty.
8.5.5
Work around for Dropbox login issue.
8.5.3
Migrate Dropbox interface to new API with better security and privacy controls.
Updated app to fix issues on Android OS 4.1 (Jelly Bean)
Bug-Fix: (Pro Version) Fix issue where automatic sync was not being triggered if there were pending changes and the sync service was restarted by the Android OS.
8.1.5
Bug-Fix: Verify Aldiko 2.2.0+ has been opened at least once prior to sync, so its database is available.
Bug-Fix: Fix crash on open on Android 2.1, due to Android OS not returning Aldiko's app version correctly.
8.0.2
Add support for Aldiko Premium 2.2.0. Note that this and future versions require the device to be rooted, since Aldiko no longer allows third party apps access to its database.
Bug-Fix: Automatic sync wasn't being immediately triggered on quitting Aldiko on some devices (notably, the HTC One X)
7.9.6
The restrict sync to Wi-Fi option will no longer prevent a manual sync from occurring if the device is on a 3G connection.
Bug-Fix: Fix crash during sync if library contained books with Adobe Digital Editions DRM.
Bug-Fix: Detect and discard corrupted local sync state, which was causing sync to fail. This seems to happen intermittently on some devices. The cause is still under investigation.
7.4.6
Add feature to restrict sync to Wi-Fi connections.
Pro Version: Update the "Hide Status Icon" feature to display text only on errors. Avoids the notification from blocking others on Honeycomb devices.
Update notification to show the actual error message, instead of a generic sync failed message.
Bug-Fix: Fix code to no longer silently ignore errors when saving the sync state.
7.1.2
Work around a bug in Android Gingerbread OS (2.3.1 and 2.3.2) which would sometimes corrupt the last digit of the stored read position, causing future sync operations to fail.
Add a ".nomedia" file to the SDCard location when a new book is imported to prevent the standard Gallery app from caching the book's thumbnail and cover images
7.0.4
Add option to always sync to furthest read point.
Improve code that checked for internet connectivity, should reduce the "Unable to reach Dropbox" message when switching from mobile to WiFi.
Pro Version: Allow error notifications to be dismissed when the "Hide Status Icon" option is enabled.
Bug-Fix: Detect and ignore incompatible thumbnail/cover images when adding new eBooks instead of failing the sync operation.
Bug-Fix: Fix very slow loading of library data for large libraries (100+ books) on devices whose default locale is not US English.
6.18.32
Updated app to fix issues on Android OS 4.0 (Ice Cream Sandwich)
Add option to always add books from a device to Dropbox on first sync (enabled by default)
Expand info sent via the "Report Issue" feature for a better support experience.
Bug-Fix: Fix the "eBooks Folder" field to be a single line control.
Pro Version: Improve license check code to reduce verification failure reported by some users. Requires updated unlocker app to be installed.
Pro Version: Update the "Hide Status Icon" feature to be more useful by displaying the icon when a sync is in progress.
Bug-Fix: (Pro Version) Fix issue where a sync was not performed if the device went to sleep due to the screen being turned off before the trigger could execute.
6.10.2
Add extra checks to verify internet connectivity before starting a sync operation. With this change, the "Unable to login to Dropbox" message should show up only for actual Dropbox login failures.
6.6.14
Correctly resize the cover/thumbnail image when adding a book to the device. Fixes issue with squashed images on certain devices.
Bug-Fix: Position in eBook was not being synchronized across devices if it had user defined bookmarks.
Make it much easier to report an issue with the app (Settings => Report Issue).
5.10.4
Bug-Fix: (Pro Version) (Android OS 2.2+) Fix crash on reboot when automatic sync is enabled and Aldiko is installed on the SD card. Correctly handle moving Aldiko from/to the SD card and SD card mount/dismount events.
Bug-Fix: (Pro Version) Fix crash if automatic sync is enabled when Aldiko is not installed.
Bug-Fix: Fix issue with eBook getting updated on every sync on local device if it was deleted and re-added on another device.
Pro Version: Reorganize code to improve battery life when automatic sync is enabled during a long Aldiko session.
5.8.20
Bug-Fix: Discard stored local sync state if its incompatible with the new app. Fixes the "Unable to read library" error when loading previously synced books.
Bug-Fix: Fix handle leak on screen orientation change.
5.4.18
Rewrote core parts of the app so it no longer requires root access.
Further improvements to the code that handles dropped connections during a sync.
Bug-Fix: Fix issue with an eBook not getting the correct saved position under certain rare circumstances.
Pro Version: Minor improvements to the "Optimize Network Traffic" feature.
4.1.2
Updated app to work on Android OS 2.1 (Eclair)
Improve handling of dropped connections. This should help reduce sync failures.
Add feature to optimize data stored on Dropbox. This feature enables compression of the library data and speeds up the sync operation.
Bug-Fix: (Pro version) Under certain circumstances, eBook updates would not be applied on a subsequent sync if the first attempt failed.
Bug-Fix: Fix issue with icon in the status bar being stuck in the "on going" status even after the sync operation was complete.
3.4.2
Bug-Fix: Inadvertently introduced a bug in the previous version, which could cause a manually triggered sync to loop infinitely under certain circumstances. (Sorry!)
Pro version: Add ability to trigger a sync operation from external apps (like a Tasker/Locale plugin) via a broadcast intent (com.ucr.aldikosync.triggersync)
3.3.6
Bug-Fix: Auto sync was not being triggered after quitting Aldiko on certain devices (some HTC phones, devices with CyanogenMod 7 ROM, and maybe others)
Bug-Fix: The "Optimize Network Traffic" option is dependent on automatic sync being enabled. Fix the Settings user interface so this dependency is communicated to the user
Add option to hide the notification bar icon in the Pro version
3.0.18
Library handling code optimizations resulting in a smaller and faster app
Improve reporting of Dropbox errors to the user
Add support for fully automatic and faster sync checking in the Pro version
2.2.4
Supports both Aldiko Free and Premium
Fixes crash that some people reported with the initial release.
Works great. I have been waiting for something like this. Any way to automate the syncing process.
jdaudlin said:
Works great. I have been waiting for something like this. Any way to automate the syncing process.
Click to expand...
Click to collapse
Thanks!
What kind of automation were you thinking of?
Something that runs automatically like dropsync. I don't want to have to remember to sync every time I open a book.
jdaudlin said:
Something that runs automatically like dropsync. I don't want to have to remember to sync every time I open a book.
Click to expand...
Click to collapse
I see. No promises, but I'll look into it.
actually it doesn't need to be truly automatic, just on open and close of the app right, or just on open and occasionally when aldiko is not closed.
i think that's how ibooks works.
so if you wanted to do it on open, why not click on this app which syncs and then opens aldiko. that gets you half way there.
I'm getting a fail on reading the aldiko database on my atrix and xoom.
Yaotl said:
I'm getting a fail on reading the aldiko database on my atrix and xoom.
Click to expand...
Click to collapse
Can you post the entire log of what you're seeing on the device?
Thanks.
brilliant idea! now to get me a tablet to test it out
I/ActivityManager( 1553): Displayed com.ucr.aldikosync/.AldikoSync: +269ms
E/Database( 4009): close() was never explicitly called on database '/data/data/com.aldiko.android/databases/library.db'
E/Database( 4009): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
E/Database( 4009): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1847)
E/Database( 4009): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
E/Database( 4009): at com.ucr.aldikosync.tasks.SyncTask.loadDBLibrary(SyncTask.java:324)
E/Database( 4009): at com.ucr.aldikosync.tasks.SyncTask.runTask(SyncTask.java:108)
E/Database( 4009): at com.ucr.aldikosync.tasks.Task.run(Task.java:30)
E/Database( 4009): at java.lang.Thread.run(Thread.java:1019)
D/su ( 5040): 10291 com.ucr.aldikosync executing 0 /data/data/com.ucr.aldikosync/files/aldikoSync.sh using shell /system/bin/sh : sh
I/ ( 1456): odm_disp_esd_thread is running(57) state=1
D/dalvikvm( 4009): GC_EXPLICIT freed 105K, 47% free 3333K/6279K, external 472K/519K, paused 59ms
E/Database( 4009): close() was never explicitly called on database '/data/data/com.aldiko.android/databases/library.db'
E/Database( 4009): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
E/Database( 4009): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1847)
E/Database( 4009): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820)
E/Database( 4009): at com.ucr.aldikosync.tasks.SyncTask.loadDBLibrary(SyncTask.java:324)
E/Database( 4009): at com.ucr.aldikosync.tasks.SyncTask.runTask(SyncTask.java:108)
E/Database( 4009): at com.ucr.aldikosync.tasks.Task.run(Task.java:30)
E/Database( 4009): at java.lang.Thread.run(Thread.java:1019)
I/ ( 1456): odm_disp_cabc_thread running
I/ ( 1456): odm_disp_cabc_thread is restarting err_cnt=141
Yaotl,
That's very weird. What version of Aldiko do you have? Also, what Android version?
Can you also post the output that is in the "Status" section of the app when this happens?
aldiko 2.02
CM7 prebeta4 on a Motorola Atrix
the status is the same until:
"Failed. Unable to read Aldiko database. [null]"
Yaotl said:
aldiko 2.02
CM7 prebeta4 on a Motorola Atrix
the status is the same until:
"Failed. Unable to read Aldiko database. [null]"
Click to expand...
Click to collapse
does "Checking if Aldiko is installed" and "Requesting super user access" appear before the failure?
GameGod72 said:
does "Checking if Aldiko is installed" and "Requesting super user access" appear before the failure?
Click to expand...
Click to collapse
yup, everything like the screenshot until right after "Loading books from Aldiko database"
Yaotl said:
yup, everything like the screenshot until right after "Loading books from Aldiko database"
Click to expand...
Click to collapse
okay. I'll have to figure out a way to test this device on the emulator and see if I can reproduce the issue.
GameGod72 said:
okay. I'll have to figure out a way to test this device on the emulator and see if I can reproduce the issue.
Click to expand...
Click to collapse
I tried this on the Atrix image provided by Motorola and could not reproduce the crash. I also searched around, but could not find a CM7 PreBeta4 image for the emulator.
If you can provide an emulator compatible image, then I can try reproducing it for this particular configuration.
Also, do you have any special apps running in the background that might be preventing my app from opening Aldiko's db?
GameGod72 said:
I tried this on the Atrix image provided by Motorola and could not reproduce the crash. I also searched around, but could not find a CM7 PreBeta4 image for the emulator.
If you can provide an emulator compatible image, then I can try reproducing it for this particular configuration.
Also, do you have any special apps running in the background that might be preventing my app from opening Aldiko's db?
Click to expand...
Click to collapse
I'm using the ROM from: http://code.google.com/p/atrix-dev-team/
I'm also getting the same error on my Motorola Xoom, running Moray from here: http://forum.xda-developers.com/showthread.php?t=1254933
I don't think I'm running anything weird.
Yaotl said:
I'm using the ROM from: http://code.google.com/p/atrix-dev-team/
I'm also getting the same error on my Motorola Xoom, running Moray from here: http://forum.xda-developers.com/showthread.php?t=1254933
I don't think I'm running anything weird.
Click to expand...
Click to collapse
Can't seem to find an emulator friendly image for either of those builds.
Would it be possible for you to go back to stock rooted ROM with all your current applications and see if you can reproduce the crash?
Terrific, mate, I've been wanting something like this since I bought my Asus Transformer and had to play catch up to locations I had started on my phone(HTC HD2). I shall watch this with keen interest to see if a non-root requirement is ever implemented as I don't want to lose Google Movies and Netflix access on my tablet if I root.
Genius idea, must say. I would have always waited for the developers to add the featuure, whenever they actually updated.
Hello,
Let me introduce Spy Phone App - Parental control
Spy Phone App - Parental control is one of the most complete parental control solutions. With this application you can monitor your children, your girlfriend/boyfriend or your employees.It can also be used to backup data from your device.
The logs from the target phone are stored on a server that you can REMOTELY access through internet.
With this application you can track:
- phone calls
- SMS and MMS
- Internet browser
- Pictures
- Facebook
- Whatsapp
- Viber
- Skype
- Calendar
- Contacts
How it works?
1. Install this application on the target phone
2. Register a new account
3. Choose a name for your phone
4. Log on our website to check your logs
We can`t give you the URL to the application/site because we are newbie (we please a moderator to help us).
You can view the first and second video from youtube ( Please search for introducing spy phone app).
After that let us know if you like or not this application. Waiting for your reviews!
As soon as possible we will post the links. Thank you for understanding.
It should be noted that this software is designed for ethical monitoring of underage children in the process of parental control or for employers who want to monitor their employee’s activity. You must make anyone who uses a device on which this app is installed, aware of the fact that their internet and phone activity is being monitored and archived
Hi,
I created my first app because I wanted to discover Android development, and also because I couldn't find an existing app that could precisely answer my needs.
With it you can get notified when an URL does not respond : when your http server or device crashes or get disconnected from the internet, or when there is a power outage.
You can also add a widget on your home screen to get a quick view of your server status.
In both case your phone will periodically send a request to your server to check if it is offline.
You can find my app by searching "Server Offline Notifier" on Google Play Store.
I personally use it to get alerted when my home suffers a power outage (my freezer is full of good food and needs electricity !), but I think there is a lot of possible purposes.
I am looking for possibility to run only:
- phone
- contact list
- chrome
- camera
- music player
on Android device. I want to check app first before I decide to give permission to run it. I want to run Phone app but I want to block SMS app and all other messaging apps.
How can I set it up ?
The purpose is to give the smartfone to the kid but with very limited options, so it's not using messaging and other chat apps , the only way of communication is just phone call but also I want her to have a Web Browser and phone Contact list, Camera and some Music apps so she can use it as a player anytime.
No distracting apps loaded with ads, no texting, no notifications.
Please help with the simplest solution for that.
Thank you
Find My Phone app allows you to locate family members or your lost device from any device (Android, Apple, Laptops etc) through WhatsApp
With the app you can create a message trigger that will send back the last location of your lost device back to you through WhatsApp and show you the location on the map (google maps).
First you create a message trigger from the main screen and whenever your lost device will receive that message through WhatsApp it will reply with a url that shows you the location of your lost device in google maps.
It's so simple that you will be amazed!
Available in Google Play for free: Google Play Link
Added a video
Let me know what you think
Can someone give some feedback?
Ready for the new update?
update my experience soon.