Why the notification must be always visible?
The Android application headlines says that the user must always be warned that the application has a background service running. Auto Uploader shows that notification and allows the user to disable it.
In Android 4.3 Google has made some changes in the way that the application can start a background service and forced the application to always show a notification. If the application does not create that notification, Android itself will create one and show it.
The only way that Auto Uploader can start the background service and keep it running safely is showing the notification. If the user disables it, Auto Uploader will start the background service but the Android system can kill the service at anytime when it frees memory to allocate to another process. And the user will never be advised of that. Android will try to restart the service by itself after a time, but nothing guarantees that it will succeed.
So if you want to keep Auto Uploader running always safely you must keep the notification on.
My pictures are never uploaded
There are a lot of things that can avoid the image to upload.
- the service is not in green mode: only in green mode the application will upload a picture.
- there is no internet connection: you can choose to upload always (using 3G/4G/GPRS or WiFi) or only in WiFi. But the connection may not always be available.
- the application was killed by Android: the application can be killed by Android when it reclaims memory for other applications. You can avoid this allowing the application to show a notification.
- the online service refused the file: the online service may accept only a few image types. If you use a custom camera application that saves the images as RAW, for example, the service could refuse the file. You will see an error message in this case.
Why Facebook has been removed?
Facebook policies demands that their SDK must be used to login in it. I always try to keep Auto Uploader as small as possible which means not using any SDK to connect to any service. Include a SDK adds a lot of useless code which means increase application size.
Upload a photo to the user feed/album/page/whatever means that Auto Uploader must be reviewed by Facebook, and they do not accepted that an app opens a browser to login even when it works perfectly.
So to keep Auto Uploader as small as possible I chose to remove Facebook integration.