I have developed an android app which keeps runing continously for days. Now i normally keep making updates of this app and i want that all the phones running my app should somehow be able to auto update my app installed in them.I have not yet released my app in the market.In my app i have already developed push notification feature if that helps ? Any ideas ?
you could use a server and get the app to check for new updates and download accordingly.
Not sure if this is what you're looking for.
If the app is on the Android Market (now Google Play Market) then there is no way to force the user to update. Like DCSoft said, you could have your app check some server to see if an update is available. At that point you could either bug the user until they update, or you can prevent the app from functioning until it is up to date, but that's about it.
You can use https://github.com/commonsguy/cwac-updater
It's really easy and fits your need.
I used it many times.
You can use services in android to check if there is any update in the service, if so trigger the service, to update the stuffs, else destroy it.[User might not come to know about this]
Is this what you wanted?!
Vishnu, assuming you don't want to use the Google Play auto-update feature, you will need an Updater. In two of the companies I worked for, we had a similar problem with both Windows Mobile 6.x and Android apps - no Google Play allowed for security reasons - and I used this solution in both cases successfully:
The main app check if it's updated, against a Web Service. It receives the current version & the URL from where to download the new version, if necessary. The main app then starts the Updater app, passing the URL, and quit.
The Updater download the new program, via HTTP, showing to the user the % downloaded. The user can cancel the download anytime, in a controlled way, and the Updater can registry this cancellation.
Since the new app is downloaded, the Updater run the new app, and quit.
Related
I have to develop some specific software, which sometimes can't connect to the App store, but I will have to send some updates. this software can be restarted but it needs to check for updates itself and download it, so I am looking for ways to update like Facebook is doing for example. Change its own package and restart, but I could not find any helpful information or SDK to do so. What is the right way to do so? How can I achieve that.
edit: I have seen some solutions. One is having 2 apps (1 updater and 1 main app, it is ok but I am looking for a bit more flexible ways if possible). And SDK-s just send you to the download page, but I need my app to download and install it itself (This software will be used as a middlware controlling app for IPTV devices, so there is no security issues in terms of not notifying user about update, I'll handle it with popups)
There is an API in android for update apps. It is called In-app Updates.
Basically, it has two options:
Flexible: The user choose if he wants to update the app or not
A user experience that provides background download and installation with graceful state monitoring. This UX is appropriate when it’s acceptable for the user to use the app while downloading the update. For example, you want to urge users to try a new feature that’s not critical to the core functionality of your app.
Immediate: The app shows a screen where the user must be update the app
A full screen user experience that requires the user to update and restart the app in order to continue using the app. This UX is best for cases where an update is critical for continued use of the app. After a user accepts an immediate update, Google Play handles the update installation and app restart.
In your case, you can use the "Inmediate" option
References:
https://developer.android.com/guide/playcore/in-app-updates
I have developed a Mobile App for both Android and iOS. Now every week we have 2 updates to be released. Most of the times Android and iOS users stops auto updates for the apps. But if there are critical updates or bug fixes or new features then we must ask user to update the app for better usability. For this I have found Android has In App Updates API. It says and I quote
Keeping your app up-to-date on your users’ devices enables them to try new features, as well as benefit from performance improvements and bug fixes. Although some users enable background updates when their device is connected to an unmetered connection, other users may need to be reminded to update. In-app updates is a Play Core library feature that introduces a new request flow to prompt active users to update your app.
However I am not able to find same kind of or similar like feature for iOS. I am not sure if Push Notification can do the same or not. Please advise.
No, App can not be updated or downloaded without the user's settings for Auto Updates.
But you can try an alternative way.
Like when the app opens or comes to the foreground, call an API/web service to check is there any critical update released based on the current version of the app? Based on YES/NO response, show an alert to users that new update is available and on OK click, take them to the Apple stores.
No, iOS does not have the auto update feature that Android has. Push notification would not work well for this, as 1) the user may disallow push notifications, and 2) the Push would not know what version the user is currently using.
If your app calls a backend web API or web service, then it is pretty simple for the app to call a method, say, getVersion() in the web service. The web service reads the current version as set in a config file and returns it to the app. It could also return a flag that says Mandatory = either Y or N.
In your app, you call the getVersion() method every time on start up. If the app's version number is less than the version returned in getVersion(), then you check to see if the mandatory flag is set to 'Y'. If so, you show a dialog that says a mandatory update is required before you can use the app, would you like to install this now? If yes, you navigate them to the page in the iTunes app store, and exit the app. If no, you exit the app. They will get the same message every time they try to run the app until they update it.
If the mandatory flag is set to 'N', you show a dialog saying that an updated version is available, would you like to install it now? If yes, then navigate them to the page in the iTunes app store, and exit the app. If no, you allow the app to open and continue. However, the user will again be prompted every time the app opens until they update.
You can make the getVersion() method work for both iOS and Android, if you pass the platform to the method getVersion(String platform), and then read the config file for android_version or ios_version (as the version numbers may differ between platforms) depending on what was passed in the platform parameter.
Does the android market (or Google Play as it's now) offer a way for an app to check if it's updatable?
It seems to take very long for people to notice (or care) to update their apps. I'd like to show some "Update available" notify inside my app.
I could just have some file on a webserver stating the latest version. But this has the obvious chance of pissing people of if they click the "update available" button and are then taken to market which doesn't yet have the update.
So is there some nice API or other brilliant ideas?
Actually, Android Market takes a very good care of updating your application. Users are notified as soon as your update is available, and if they decide to ignore the notification, it's their decision.
If you are looking for alternative methods of updating your application, I'd suggest to check this thread.
No, Google Play store is a closed system and it does not expose an API to check version number since it takes care of updating installed apps whenever updates are available. However can be done by having a web service which keeps us updated on current version of android app on google play store and then compare the installed app version with the version we got from web service. Please have a look at https://code.google.com/archive/p/android-query/wikis/Service.wiki
I have an app written in Adobe Air (actionscript3) then packaged as an APK for the moto xoom (android os, using flashdevlop).
We are looking to host both the install and update. There are no issues with selecting unknown sources. And installing from web works but i cant seem to find anyway to set it up to find updates thru my server or the correct way to push those updates. Thoughts or links, google has failed me?
UPDATE
I forgot to make clear i need it to work thru the built in update checking so it will auto update if the device is set to do this. By default either the app or device is checking for updates somewhere. I want to change where it checks for that update and what format/syntax its expecting.
The built-in update check is the Android Market app, pinging the Android Market server to check for updates. Since you're not distributing your app through Market, there's no way for you to take advantage of its update mechanism- You'll have to write your own (Amazon's market app, by way of example, does this).
Essentially you'll have to set up some sort of alert mechanism (check for updates on app startup, maybe), download the APK, and fire an intent to have the user explicitly state they want to install the app. Auto updating (downloading and installing the APK without the user doing anything at all) isn't possible outside of Android Market, for security reasons.
For more information on how to fire the "install" activity, check out this thread.
It sounds like a good case for cloud to device messaging....to notify the user of the update
is available...
http://code.google.com/android/c2dm/
I think they will still have to download/install it.....You can help them by making the download/install feature of the app it self.....
okey... i think you have a few web services right... create a update webservice that takes in the user version and sends it to you.. you can cross reference it and if the user needs to download a new version they get directed to a browser ... where you can poit to where you host the files... you can put in a menu item in the app to say allow the user to check for any upgrades... version number of the app can be got easily... check google or get back to me if you still are nunable to find any...
In one of our projects where we are implementing an application using Android/HTML5/JavaScript there is a requirement for having an Android Auto update kinda feature which is as described below:
Update Native version: The Native version of our application should be easy to update. New versions should be possible to “push”, or at least notify, the user of. Does this require that we publish it to the Android Market?
As of now Notification of the new version can be send to the device but we need an approach to automatically download the new version and install ie., either update the existing version or overwrite it. Hosting the new version in Android market is the last option according to the client
If someone/somebody has earlier come across or implemented such a feature, could you kindly reply back.
If you are using the Android market , the best solution is to just notify the user that an update is available. Depending on the update or Application you may decide not to allow the user the access the app if an update is available.
You will always need to push a new APK to the market , the user may setup the auto update feature but I believe there is no way for an app to force the setting.
Any method which will allow the app to auto update would either need more privileges from users or a routed device , which I guess is not a big enough percentage of users to try the feature.
The android market allow to auto-update applications. Is you want to do it without using the android market, your users will have to enable apk install from unknown sources and they will have to confirm each installation (unless their phones are rooted I think)
There is a nice service called http://push-link.com
This hosts you APK and manage updates. You can choose how the user is going to be notified and see the progress installation of all version.
Cheers...