android apk non-market install update notification - android

We have users with android app installed from non-market install(manual apk install)
Also we have updated app on market place.
Will Android market send notification to user saying "new version available" on phones where app is installed manually?

The answer is NO. Applications which are not installed from Android Market will not get update notification from Android Market. You must implement your own update notification mechanism within your app.

If user opens market and search for the app it shows as upgrade, market checks if the version installed on the device is same as what is there on the market. I am not sure about the automatic notification behaviour, i think it does but i saw this behaviour randomly sometimes it comes up after a hr , sometimes in a day.

Related

Install update from a different repository than google play

I built an app for a client, but it must be private so I can't publish it in the store.
This application is installed in 30 devices, so every time I release some updates another guy has to install the new app in every device. I was wondering if I could update the app from a link or something.
My idea is to insert in a table the current version with the link of the app that expo provides me after the build.
Once I press the button "check for updates" I check the version installed and if it's old, I will download the app from the link and install it automatically.
Is it possible at least for Android? For ios I don't care so much since it is installed only in one device.
I read about updates from expo wiki but I think it works only for published apps
thanks
Put the .apk on a server in the internet.
Everytime your app starts it starts a thread that checks if the .apk on the internet is different/newer from the one that is running.
If so then the new one is downloaded automatically.
When all done your app starts an install intent at a suitable moment.
Google Play can distribute private app to devices registered in your organization.
You can read this for more info: https://support.google.com/googleplay/android-developer/answer/6145139?hl=en

Remote update app across multiple devices

I am currently investigating ways of remotely updating an Android app installed on a number of devices. The app in question is to be used on phones which we will provide to a number of demonstrators as part of product presentations. For this reason we don't want to publish the app on Google Play to be available for the public at large.
I've read that you can restrict access to the device on Google Play, but only according to criteria such as location, device type, android version, etc. Another way is to set up a version for beta testing, for which you can select testers, however this is only available to those who are part of a Google group or a Google+ community (according to here).
I've come across another post which details how to install an apk programmatically, however it appears to install the apk automatically, ie it doesn't appear to check whether or not the update is actually a new version.
One idea I have in mind is to upload new version on a repository and broadcast to devices which have the app installed, of which we have stored device ids. Is this possible?
What we do is sync periodically to a remote server during data entry on the app. During this sync, we check to see whether the device has the latest version of the software. If it doesn't, the new apk is downloaded and the user is prompted to install the software.
This is accomplished using a separate installer app we created. We have a service that keeps the app alive in the background, so it looks like the user never actually leaves the app during the install.
Would be happy to post code on the installer.
You can see the self installer here: https://github.com/techartist/SelfInstall-Jelly-Bean/
You should try Beta by Crashlytics, it's email-based.
You should try beta or alfa testing in gplay.
Also you can hardcode the date of ending and not to open application after this date.

Android market application autoupdate

Some of the applications I have installed on my phone update automatically, I don't even have to click anything. This is the behavior I expect from the application I'm developing myself. Do I have to configure something or will android market take care of this?
This is not a behaviour you can set on the application itself. Each user chooses how the applications he downloads are updated. This is a market setting.
In the latest versions of the market, the default is now set to auto-update, but the user is free to untick the box and decide for manual updates, per application. If you open settings, you can also decide whether it's done on Wi-Fi only or on mobile data as well.
This will be done on all updates except the ones where a permission change occurred. For them, the market will still require a manual update.
Auto update is possible. But you should click app to start it at least.
In the start process, you can send the current version status to server through web service, server will identify the version if there is new version. if yes, a new version apk file will be downloaded, and the most important is how to install a apk file sliently.
Generally, you can run the
pm install -r xxx.apk
the apk will be automatically installed, and your app will be updated.
I'm almost positive you can't force users to update their installed apps, but I think it is the default behaviour of the Android Market.

Can a system app be updated?

If i have a system app on an Android with the same package signature and that has a new version on the Android Market will the Market detect it and be able to update it?
(For example an app that a Carrier adds to the OS).
UPDATE:
Managed to validate this anwswer (marked it as resolved already)...but a new one appeared: Why doesnt the market show the system app on "my apps" when an update is available?)
In short: Yes.
After you install them, you will have the option of "uninstall updates" instead of "uninstall" as you see for the regular apps.
However, most carrier apps don't have updates through market, only google apps do. (For example: Gmail updates fairly often while SpringID may never update because they are not on the market)

Is there a way to automatically update application on Android?

I'm developing an application that will most likely be preinstalled on devices. It will be also available on Google Play. Is there a way to update those instances that are not downloaded through Google Play, since Google Play won't notify users about an update.
I was thinking about, as suggested here, trying to contact my site periodically, and when update is available, download it.
Is there a way to do this update automatically, or even silently, so that user doesn't have to do anything (like running the package manually). Or, when my site shows update is available, to offer users an update through Google Play, even though it's not installed through Market (EDIT: This Google play option would be preferable, because than users wouldn't have to check "allow install of non-Market sources".)
i had the same issue, now i check at the start of my app if theres a new version in my configuration xml.
I compare the actual version with the tag "< app_version >1.1< /app_version >" of my configuration.xml
if its lower i ask with a custom AlertDialog if the user proceed with the upgrade
Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse(myapk_link));
startActivity(intent);
after the download the user has to run the package manually.
if you choose the update from the Android market use:
Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://details?id=com.package.name"));
startActivity(intent);
com.package.name must be the "package" of your app
or
Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APP_NAME));
startActivity(intent);
Just found a way that works. Fire an Intent for a Market that searches for my application.
Tested with OpenIntent Newsreader because for it was easy to find an older version .apk. Market finds an application, and when user clicks install, replaces older version with the one from the Market. I think that is much easier solution for a user than downloading manually .apk and running it.
Intent intent = new Intent(Intent.ACTION_VIEW ,Uri.parse("market://search?q=" + APPLICATION_NAME));
startActivity(intent);
Is there a way to update those instances that are not downloaded through Google Play, since Google Play won't notify users about an update.
Old question, new answer:
After digging on exact the same question (pre-installed app on device, how can I provide a update through Google-Play) I found this information on support.google.com*:
Google Play can manage updates to preloaded applications, provided the following conditions are met:
The preloaded app needs to be in the system partition
The preloaded app needs to be free
The preloaded app needs to be signed with the same signature as the app published in Google Play
The Package Name of the preloaded and updated app needs to be the same
The Version Code of the updated app needs to be greater than that of the preloaded app
* as of 2015-04-13
I'm developing an application that
will most likely be preinstalled on
devices.
Then you need to be talking to the device manufacturers and asking them your questions. Nobody else will be able to tell you what is and is not possible, given their device and the carrier(s) that will distribute it. The answers will depend heavily on how they create their firmware, whether your application will be part of the firmware or "installed" as a normal app, what their arrangement with the carrier is vis a vis firmware updates, etc. You may not even get a vote in the matter.
Here is the option for latest version update
https://developer.android.com/guide/app-bundle/in-app-updates#update_readiness
try this google library to update from the application
dependencies {
implementation 'com.google.android.play:core:1.5.0'
...}
I hope this will help anyone
If whoever bundled the app on the device does a proper job of it, then the app will still have a market link (even as a system app) and Market will prompt the user to upgrade it if a new version is available. After all, that's exactly what happens with an app like GMail that's pre-installed on phones.
You cannot install or upgrade a package automatically. Only the Android Market is capable of doing this (i.e. it silently updates itself).
You can certainly download a package and fire the Intent to install it, but the user will have to have the "Allow non-Market apps" options enabled, and they'll still have to manually approve the install/upgrade.
One place to possibly investigate is how Google Maps does it. This is generally pre-installed, but always appears to be shown as an update in the Android Market app, I believe. Whether there's a special flag in the packages.xml or manifest, I don't know.
There is a nice service that helps your app keep itself updated. Take a look at https://www.pushlink.com
In this product there is a NINJA mode that allows to perform updates without user interaction.
For other "modes", enabling "Install non-market app" is still needed. If it not enabled, the installation process is going to ask for it and redirect the user to the Application Settings, and after that, the user can install the app.
It's possible to fully automatically update an app, if you can sign an app as a system app. We wrote an app for specific hardware, we created an update app that the manufacturer signed for us. The update app runs on device startup, checks current version of the app and the new version, and installs the new version if necessary.
The use case would be a kiosk app, on tablets of one make and model, that don't have Google Play.
Google in 2018 Android dev summit announced android in-app update api's for developers so you can read whole story out here and get updated on this question.Android in-app update api details
https://developer.android.com/guide/app-bundle/in-app-updates

Categories

Resources