Seeing that the only app that allows to sync your contacts photos is SyncMe, yet it can't sync with WhatsApp (and there is a good reason for this), I've decided to create this app.
What this app does
Its purpose is to sync your contacts photos on the address book with those on WhatsApp.
Requirements and permissions explanation
- WhatsApp app being installed and working well. Tested on version 2.16.306 (build 451445).
- A rooted device. It is needed for getting the HQ contacts images, for auto-granting the other permissions, and for the automation of the entire process.
- Internet connection - allows WhatsApp to download the photos. Don't have any app to download stuff in the background. Otherwise it might fail to get the images in one way or another.
- Contacts permissions - the app needs to modify your contacts...
- Phone and usage-access permissions, so that the app could monitor WhatsApp Internet activity.
- Draw on top permission- for allowing to halt the process, and for staying on portrait mode during the process.
Isn't there a non-rooted version?
It is highly possible that I can make one. I started by using accessibility service to handle the automation, and I made it work for a single contact that has a photo.
It will take a long time till I can finish it, but it was a step in the right direction.
However, sadly, Google has recently warned all apps that use accessibility service for purposes that are not for disabled users (many articles about it, including here, here and here) , so for now this work is on hold, till I find out what is really going on.
They might remove the app or even my own Google account, according to these articles. I do not want to take this risk, after so much time working on it.
That being said, I might put here on XDA the app some day. Will take some time though. I may have made progress, but I didn't handle everything that needs to be handled.
In any case, this app is only for rooted devices. If I have non-rooted solution, I'm might need to make a new app for it.
- A good Internet connection
- Android 5.0 and above
- Have all contacts saved into Google.
How it works
It currently only has 3 simple steps:
- grant permissions (needed only once).
- fetch photos by first checking which are new and then go over each of them.
- sync the photos.
All phases are easy to go by (just press a single button) , and are all automatic and based on things any power user can do anyway, given enough time and patience.
The last step can even be done in the background if you wish.
Do note that as it highly depends on how WhatsApp works, it is possible that one day a new version of WhatsApp will change too much, that it won't work.
If you've found any bug, please let me know.
Why no fully automatic background sync?
This is a bit problematic because :
- it works in the foreground, and not the background
- if you have a lock screen, the app will need to bypass it, which might be an issue.
- it emulates touch operations, so if you are not aware of what's going on, it might have some risks in using it in the background
That being said, you can enable the scheduler feature that will schedule a check if it seems there are new updates that you can sync.
This operation is so efficient that it doesn't require Internet connection and you can safely set it to run every day without worrying about the battery. Just remember to let the app have root access and contacts permission.
Would it work with modded WhatsApp ?
Maybe, as long as the package name of it is the same as the official one (meaning "com.whatsapp"). Last time I checked the GBWhatsapp app (available here, called "GBWAPlus"), it worked fine with it.
Might not work in the future or on other mods.
Why not support more chatting apps? Telegram? Messenger? Viber? Skype? ...
I've spent an entire week finding what can be done with each of the top chatting apps, and failed to find a way to work with them.
Even Telegram, which is supposed to be open sourced, was found too complex to work with, and even if I did manage to work with it, its terms are that my app should be a chatting app too, with all of the basic features of a chatting app.
This will all take so much more time that I can afford for a spare time app, and it's out of the scope for the app to be a chatting app, just to sync photos.
The app says I don't have contacts. How come?
You probably didn't let it to sync with your address book yet. Let it have the permission it needs (mainly Contacts permission), and then run it, then run my app.
If all fail, uninstall and re-install both apps, and grant the needed permission to both, and then run my app.
The app used to work before I've switched to a new ROM, and now it doesn't. How come?
Some ROMs mess with how Android handles contacts on the address book. I have no idea why and I have no idea in which way, so sadly I have nothing to do about it other than recommend using better ROMs...
The app fails to sync contacts or crashes even before. How come?
There are some issues related to address book that are out of this app's scope and responsibility.
Here are some possible workarounds:
1. Try to clear data of WhatsApp, of Contacts Storage , of Contacts, restart device, open your Contacts app, let it sync with the address book for some time. Then Try my app again.
2. One user wrote this:
may be suggest him the way it works for me,export contacts from phone to vcf file,delete contacts from hone,through web, import vcf file to google,through phone sync contacts to google,through phone sync contacts to whatsapp, sync photos with your app
4. Some users say the app doesn't sync their contacts. I'm still investigating this issue, but for now, you can try to convert all your contacts to be on Google account. Some users said it helped, and some said that moving to another rom helped. Sorry if the app doesn't work for you even after those actions. Hope to find the reason for this.
One user said this helped: backup contacts to vcf file. delete all contacts. Import vcf file in web browser into Google account. Let it sync on device. Use the app.
I have "parallel apps" feature (AKA "cloning" of apps) on my phone , allowing multiple instances of apps. Why can't this app work well when it's turned on?
This feature that some devices have is not native Android feature and can cause real issues and break things. Sadly I couldn't find a way to overcome it (wrote about this here)https://stackoverflow.com/q/49930676/878126. It even doesn't work well in general, not allowing you to put widgets of the second one. Same goes for sharing. Please disable it before syncing using my app.
Tested devices and Android versions
Nexus 5X with Android 6.0.1 , Android 7.0 and Android 7.1.1.
HTC One M8 with stock Android 5.0.2
Nexus 6P Android 7.1.1 DP1
asus zenfone 2 lazer (ze550kl) 6.0.1 stock
Moto G3 with 7.0
Nexus 5 with CM13 (Android 6.0.1).
Links for the beta testing group:
Written on this post.
Contacts Sync, App for the Apps & Games
Last Updated 2017-01-04