My customer wants the android app to update itself automatically whenever a change is made. They do not want to publish the app in the android market. For the first time, the app will be installed using the Android SDK or the numerous other ways to install.
How do I ensure that the app is automatically upgraded whenever bug fixes or features are added. If not automatically, a button from the app is also ok
Thanks.
Create an "updater" application. This application will monitor a remote server for updates and if it finds one, it will install the apk programmatically. Read this question for directions on how you can install an apk programmatically. You will easily find more information regarding this topic on the net.
You could try to use Pushlink. http://www.push-link.com
It can be done in following ways :
1. a push notification mechanism
2. server pooling on each start / time interval
3. Push SMS
to update the client application.
If your client is using Google Apps you can create a private Google play channel for your organization. There you can publish the apps only for your users to see. I know that you explicitly said that this is not an option, but it's, by far, the best option (although it's not free).
http://support.google.com/a/bin/answer.py?hl=en&answer=2494992
Maybe you can update your app programmatically:
download new version of your app (*.apk) to a local storage of
Android device
run new Intent for update app
Intent intentInstall = new Intent(Intent.ACTION_VIEW)
.setDataAndType(Uri.parse("file:///path/to/new_app.apk"),
"application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intentInstall);
remove downloaded *.apk
See also Android App Version Update service without releasing it to marketplace
Related
I have created simple Android Application to send a email, Application is Works Fine. I Created a one service to download and install Android Application form server[i don't want to put that Application in Marketplace]
I have update that Android Application in Future and built as a apk then upload it in server
Problem is In device i need to update that Application if i did some changes in Application
Give some useful ideas
You'll have to set up an API on your server which will tell your app if new updates are available. This API has to be checked periodically. If there is a new update, then this can be downloaded and installed and the original one uninstalled.
Another way is to use Google Cloud Messaging. You can set it up such that your app will get notification from your server when an update is available and then you can do as earlier.
Have a look at this thread to see how to uninstall and install packages:
install / uninstall APKs programmatically (PackageManager vs Intents)
If you don't wanna uninstall/install manually, then you can use this excellent package from CommonsWare:
https://github.com/commonsguy/cwac-updater
If you wanna use a framework then there are many options:
http://hockeykit.net/index.html
http://launchpadapp.com/
http://www.appaloosa-store.com/
http://www.apphance.com/
Probably you may want to try something like hockeykit http://hockeykit.net/index.html
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.
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...
I have created the the android application and it was given to all my clients. Now I update my application and want that changes are done to all my clients. I don't want that client to uninstall the application and install the updated application again. I want that when the client opens the application shows a notification which asks the client to install the updated application and then log in.
I want to achieve this functionality does anyone have any idea how to do this?
Please do reply me it's very important for my side.
How did you distribute the application? Through the android market? If so when you upload a new version their phone will periodically notify them that updates to some of the apps are available. If you did not implement this functionality in the version of your application that has already gone out then I am afraid you don't really have a way to make this happen.
Moving forward what you can do to implement something like this is have a webservice that returns the current version code for the application. In your apps onCreate() method call this webservice and compare the result with the version code of the app on the system. If the one from the webservice is greater then prompt the user to go download the new version.
Edit: If you didn't implement this in the version you've given out already then you have no choice but to just send out a new apk file to them. You can use some process similar to what i've stated above in the new version so from here on out you'll be able to set a value on the server that will lead to the users being prompted to download new version.
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...