Last updated Oct. 30, 2011
NEW: improved contact sync (automatic delete of contacts)
This app, when used with the Thunderbird extension Android Contacts Sync, provides direct transfer of Thunderbird Address Book and Android Contacts data via a TCP/IP network connection. I wrote this app so I would not have to upload address book/contacts data to an online account such as Gmail. If you would like to synchronize address book/contacts data between Thunderbird, your Google account, and an Android device, I recommend you do not use this app. Instead use a Thunderbird extension specifically for syncing to your Google account and setup your Android device to sync with your Google Contacts.
I wrote this app so I could keep my personal contact data in just two places, my PC and my phone, and not be forced to upload it online. If that is what you are looking for, this is the app for you. Please see the Known Issues for limitations.
Thunderbird 3.0 or later
Android device running 1.5 to 2.3
Network connection between your Thunderbird PC and Android device.
For further reference in this document, menu selections will be noted by a notation such as Menu>Help, which in this example means select the menu named Menu (or push the Menu button), then select the Help items.
As mentioned above, you will need to install the Thunderbird extension Android Contacts Sync which this app will communicate with. It is available on http://sites.google.com/site/roger4apps/ with the trial version of the app. Download the extension file and rename the file to end with .xpi or it will not install properly in Thunderbird. You can install it by selecting Tools>Add-Ons>Extensions, then select Install Add-on From File from the drop-down menu next to the search box near the top (for Thunderbird 3.* click the Install button) and browse to the file. After installing the extension, open the extension options by selecting Tools>Add-Ons>Extensions>Android Contacts Sync>Options. Change the Key entry. Remember this key. You will need to enter the same key in the Android app.
Before you can perform a sync operation, you must enter the connection data so that the app can connect to the host running Thunderbird. Start up the app and touch Settings to make the settings buttons appear and click the Connection button. Or just press the Sync button on the main screen and the Connection setting screen will come up if there are no current settings.
Check “Scan for Thunderbird”. Change the key in the bottom box to be the same as you entered in the Thunderbird extension.
Be sure you have Thunderbird running before attempting to sync. Thunderbird must be running with the main messaging window open (this is the window where you can see your Inbox).
After entering your Connection settings, return to the main screen and press the Sync button. Even with no sync settings, the app will attempt to connect to Thunderbird and get the names of your address books. If successful, you should see a completion message below the Sync button. If there was a problem, you will get a message in an alert popup.
After a successful sync operation, go to the Group/Address Book Sync Settings to setup how Address Book/Contact Group data should be transferred.
If you have trouble connecting, try changing the Connection Settings.
As you would expect with each new version, certain bugs will be fixed. If you have problems after updating to the latest version, try resetting your contacts:
On this screen, you will see a Sync button and a status message below the button. Press the Sync button to start a sync operation. If there were any problems with the sync operation, you will get a message in an alert popup, and data causing the problem will not be transferred. Please see the Known Issues for some reasons problems may arise.
For Android 1.5 and 1.6, you will be asked to turn off syncing of Contacts (set in the Android menu Settings>Data synchronization). Please see the Known Issues for the reason why you should do this.
Touch the text Settings below the Sync button to make these settings buttons appear or disappear:
Press the Menu button while on this screen to get these menu options:
This screen will list your current Contact Group/Address Book sync settings. Each shown setting will have the sync type and the name of the group. To add a setting, select the Add button at the bottom of the screen. You will be given a list of available groups/address books. After you select a group/address book, you can select the type of sync:
The list of available groups is updated with each Sync operation, so any address books added to Thunderbird after a Sync operation will not appear until after the next Sync operation is done.
To Edit or Delete a setting, highlight then long click on the setting.
Because the Import and Export operations overwrite data, they will have the least problems. If you have problems with a Sync operation, you may be able to work around it by changing to an Import or Export setting. For example, if a Sync operation results in a message about conflicting data and you know the most recent data is on the Android device, you can the change the sync setting to Export to overwrite the Thunderbird data.
This screen lets you enter the data to connect to the machine running Thunderbird. You can enter the name or IP address of the machine in the top box, and the communication port number in the box below it.
If you use a machine name and it fails to connect, you should try using an IP address instead. Unless you have specific reasons, you should leave the port number alone. But if you change the port number, be sure to make the same change in the Thunderbird extension (select Tools>Add-Ons>Extensions>Android Contacts Sync>Options). You'll need to restart Thunderbird for the port change.
Checking Scan for Thunderbird will cause the app to try a range of IP addresses. The range is defined in the box below the checkbox. This feature is currently configured for IPv4 addresses. The app attempts to connect to addresses described by replacing “*” in the range with values from 0 to 255. The default entry is based on the current IP address of the device. Edit this entry according to your network settings. Depending on the number of addresses the app has to try, the app may take from several seconds to a couple of minutes to find Thunderbird. TIP: if you know the specific IP address range your router uses, you can use a filter like 192.168.0.19* so that the scan finds your Thunderbird machine faster.
Enter your personal key code in the bottom box. This is used to encode the data transmitted across the network as a security feature. Your key code must be at least 6 characters long. This key code must match the key code in the Thunderbird extension. In Thunderbird, select Tools>Add-Ons>Extensions>Android Contacts Sync>Options to enter the key code.
This resets the app's internal sync data. This does not affect the data in contacts. This should only be used if you are experiencing problems.
This setting only applies to Android 2.0+ devices. Check this setting and any contact group on the phone will be available to sync with Thunderbird. Without this enabled, only phone-only groups will be displayed as available to the app. If you enable this option, you will be asked to turn off syncing of Contacts (set in the Android main menu Settings>Accounts & sync). This is recommended because this app was written assuming no other application would try to sync with the contacts and modifies the contacts in a way that bypasses normal synchronization. If you have the automatic sync setting on and use this app, updates from an online sync will not be forwarded to Thunderbird.
Be aware that this option will not change the account associated with the contacts. If you would like to make your contacts data private between Thunderbird and Android, follow the instructions in the Updating section, then you will not need to enable the Allow Any Group Sync option afterward.
Prior to Android 2.3.4, there was no official API for communication over a USB connection. Yes, Android has USB communication built into it and other apps have found ways to use it. But since this is not officially open to apps, it could be changed at any time and, of course, break the apps using USB.
If you provide a machine name for the destination connection, the ability to resolve this name to an IP address is completely dependent on your network/router. I, personally, haven't had much luck with this (I get an IP address that looked like garbage for a machine on my LAN) because of NAT features common on most routers.
Also, check that your firewall software isn't blocking the port number you are using.
If the Thunderbird Error Console has a message about unexpected input, check that the key code is the same in the Thunderbird extension and the Android app.
When you create contacts and groups, they are associated with an account. It is likely all your current groups and contacts are associated with a Google account (the account you signed in when you first started your device). You can use the Allow Any Group Sync option to make these available to the app (see the option instructions for details and limitations).
This all depends on the contact editor you use. Most contact editors will default to assigning contacts you create to your registered account(s). Either use a contact editor that allows you to make phone only contacts, or create your contacts in Thunderbird and import them (you can still edit these contacts on your device and they'll remain phone only).
The following data are currently not supported for synchronization by this app:
Only 2 email addresses can be synced to Thunderbird. For Android 2.0+, only 1 IM screen name and 1 Nickname can be synced to Thunderbird. Only 2 web pages can be synced to Thunderbird, the 1st for work and 2nd for home/private.
If you see a message in the log file saying "Sync interrupted:", the likely cause is that the sync operation crashed. If you get this error, you should exit the app (it may not run properly because of the crashed sync process). Also, it's likely the last contact transferred is incomplete.
You will need to turn off the automatic online contacts synchronization (set in the Android main menu Settings>Accounts & sync). I have personally seen the Google sync adapter "hijack" my contacts. The contacts were changed so that they were assigned to my Google account, and then, they were deleted when the phone did a background sync. Of course, this means you will be able to sync contacts only with Thunderbird.
This is because of some unexpected behavior in Android contacts. If you enter a Display name in a Thunderbird contact, when that contact is transferred to Android, Android will copy the Display name to another name field if they are empty.
Because of a bug in Android OS 1.5 and 1.6, the flags that mark contacts with changes that need synchronization cannot be reset outside of the usual data synchronization methods. Consequently, to this app, all contact data always appears to have been modified since the last sync. So, the Sync setting will often have problems: all contact data is transferred from the Android device to Thunderbird every time a sync operation is performed, and changed data from Thunderbird Address Books will always conflict with the Android Contacts. This issue was fixed with Android 2.0 (in other words, you'll need to upgrade your version of Android to make this problem go away).
This is assuming that you do not want your contacts uploaded to your Google account. If so, in the Android main menu Settings>Data synchronization, you should turn off Contacts synchronization. Under Android 1.5 and 1.6, if Contacts synchronization is on, any contacts created on the phone will be uploaded to your Google account, even if you turned off the Synch all contacts option in the Contacts app. Groups you create may not show up on your Google Contacts, but the Contacts on your phone will still show up under All Contacts. So, unfortunately, Android 1.5 and 1.6 users really only have two options: have all their phone contacts sync to their Google account, or none of them.
Android 2.0+ users should not have this issue. This app will only create and sync "phone-only" contact data (the contact data are not associated to an online account). So, 2.0+ users can maintain online and phone-only contacts on their device.
For the situation where a contact has been edited both in Thunderbird and on the Android device, it is not possible to determine what parts of the contact have been edited most recently. So, the app will complain about mismatches and not overwrite the data. You will have to manually resolve the differences between the contacts.
The app does not detect that a contact group has been deleted. To remove a group, you will have to manually remove it both from your Android device and your Thunderbird Address Book.
For Android 1.5 and 1.6, postal addresses are each stored as a single text string. In contrast, Thunderbird uses several fields for postal addresses (e.g., street, city, state). When exporting data to Thunderbird, the Thunderbird extension may try to make a guess at which fields that data should go into, but of course, it is likely to do this wrong. It will more likely guess correctly if you format the address on multiple lines, as you would on a piece of mail (e.g. street, city and state on two lines).
I recommend that, after exporting data to Thunderbird,
This will format the address in a manner that the Thunderbird extension expects.
For Android 2.0+ users, contacts have been enhanced and postal addresses are stored in fields that more directly match the Thunderbird fields, so there is far less likely to be problems.
No. The contacts database support is part of Android. The calendar is not.
This app is provided "AS IS" and is used at your sole risk. The author of this app disclaims all warranties and conditions of any kind, whether express or implied, including, but not limited to the implied warranties and conditions of data or network integrity, and non-infringement.