Provide direct download link on Android - android

In my application, I want to present a button that allows the user to download a sister application. I am aware of the market://details?id= type of custom URLs and links. But I would like the download to begin as soon as the user presses the button, rather than displaying the app page and making the user press the install button there. Going through http://developer.android.com/guide/publishing/publishing.html, it seems that this is not possible. Just want to confirm my doubts.
Thanks,
Akshay

The link is correct: what you want to happen is intentionally impossible. It would be a rather large security risk if a simple link could automatically install software onto the device.

When provided a market link the user will be taken to the application's market page on which they have to confirm the install. Alternatively you could provide a link to an .apk directly (over HTTP, FTP, etc.) which will (likely) trigger an automatic download of the application but would still require an install.

If the sister application is on the market, you can't bypass the Permission's page of the market. A way around this would be hosting the .apk file on your own server space and link to that file. That way the download will begin instantaneously. Again the user would pres ok to the permissions.

Related

How can I distribute my Android App without deploying on GooglePlay Store [duplicate]

is it possible to create an android application that is meant only for internal use? Basically a private application not meant to be installed by non-approved phones?
If so what is the basic process of deployment? How do you get the app on the employees phone's?
thanks!
The easiest way is to email it to them. Any email with an .apk attachment will get an "Install" button that you can tap to install the app.
Installing from non-market sources needs to be enabled -- which is a bit of a security risk -- but the user will be prompted to turn that on if they need to, and even given a button that will take them right to the appropriate settings page. The whole process is really quite slick. :)
Alternatively, you can copy it to the phone (e.g. after connecting the phone in USB storage mode) and then use a file system app to locate the file and install it.
Emailing it is the easiest way, however.
Edit: I'm assuming you meant private as in "only sent to certain individuals" and you're not actually looking for a method that will prevent the apps from being run on non-approved devices should they end up on one.
There's a proper way to do it now: Google Play Private Channel for Google Apps. You publish app on Private Channel and then send invitations to users. It won't be seen by other users of Google Play.
Option 1
Using Google Play Private Channel is probably the best way, but is useful only for Google Apps users.
Option 2
You can use new Developer dashboard options that let your app be in Alpha or beta phase and is available to only selected google accounts (using groups or google plus circles). Your app can stay in beta indefinitely so not become visible to other users. if you like this method you can also use services like TestFlight.
Option 3
Mail distribution is also ok it's even mentioned in documentation which I find a little bit odd, but I would advise you to use some file storage like Dropbox and just distribute the link to selected people.
Two major ways:
You can either use the non-market application installation method, or adb from a connected PC to install an apk which you distribute as a bare file. The downside is that anyone in possession of the apk can install your application.
Alternatively, you can distribute the application through the android market, but make it require an account on a server you control in order to do anything useful. The upside is that possession of the apk doesn't get an unauthorized user much; the downside is negative ratings from confused randoms, and that you've made your apk very available for interested parties to know about and decompile. (There is or was also a way to put an app on the market but not list it so it was only accessible via a full url, however don't rely on that)
Yes. As of right now I use such a method, I have to manually load the app on the phone, however other techniques can be used. Once loaded the app checks the main server to see if it is up to date. If it is not, it downloads and installs the new version of itself.
If you go to your eclipse workspace and go to yours app's folder, in the bin folder assuming you develop with eclipse, you will find a .apk file somewhere in there. Copy it to the phone and then use something like EZ File Explorer (or something like that) to access your android filesystem, click on the .apk and it will install and be ready to use.

Dynamic .APK from GooglePlay store / Android

My issue is very related with this question. I'm working in a app that must implement a very uncommon behavior and, in my current overview, I don't know if it is a possible implementation. The main sequence of my desired behavior is:
The user is navigating in a browser, that can be either Android's browser or a desktop/remote browser, in a webpage (let's say "http://somewebpage.com");
The user access my dynamic website, that has a button to redirect him to GooglePlay store;
The user downloads my Android app from GooglePlay;
When the app download finish, in the first open of the Adroid app, it has a reference to the first visited page in item 1 ("http://somewebpage.com").
So, how can I properly implement this? Does GooglePlay store provide a way to pass dynamic arguments to downloaded apps? Is it possible to pass a dynamic
configuration file coupled with the .apk in app download-time? I've already spent lots of time in this, but I'm still with no solutions.
Thanks in advance!
Alternative solution: try and get the browser history to find the last page on your site visited. See Browser.HISTORY_PROJECTION and this thread.
Just an idea...
You could manipulate the Google Analytics referrer params and read them yourself through a receiver with the com.android.vending.INSTALL_REFERRER action.
Never tried it...
What I did when I had to create a dynamic APK, is use a lot of tricks and manipulations (compiling, signing, etc. through scripts) to create the dynamic APK and it was downloaded directly from our website.

How does android package manager know what to install from the market place web site?

When you visit the market place web site on a desktop browser and log in with your account it knows about your devices and what apps do and do not work on it. Fairly understandable how they do this.
What is intriguing is the feature whereby you can click the install button on the web site and the app is then automatically downloaded and installed on the phone. Now that is magic! How does this push notification work?
Is it something that can only be done via the market place web site or is it a feature that can be used by third parties to trigger installations? My use case is to drastically simplify the use of a QR code to install an application. The QR code take the user to a mobile web page that has informative content (e.g. about a painting in a museum) and also has a button to allow the user to install the corresponding application that has the same but offline content. The app would installed without going via the market place and thus losing the user's immediate attention.
I expect that the answer is "you can't do that" but rather than live under that presumption I thought that I'd ask. Is there another way to achieve my use case?
In general much work was done to ensure any applications being installed require explicit action to be taken by the user(i.e. view the permissions and press the install button). This behavior that the Market service exhibits is one of the few things that sort of sidesteps this process but I would assume the logic behind it is that the user viewed the permissions and agreed to the install on the web front end so it would be redundant to make them do it again.
As far as I am aware the use case which you mentioned (user is browsing on PC and installs app to one of their devices from there) is the only situation where it works like this. I don't believe the market offers any way for 3rd parties to tie into this and distribute their applications in this manner (other than the market web front end).
So in short, no there isn't really any other good way to push applications like that.
Im sure you could set up something that behaves similarly but it would rely on something extra being done to or installed on the device and as such it wouldn't work on stock devices which means 90% or more of people wouldn't be able to use it.
I do agree with your motivation though, it seems like a trivial process to some of us to install an app from a QR, but the general public is not yet at a point where you can count on them get it it all done correctly and quickly enough that their attention is still focused on whatever it was, in your case the item in the museum.
There are certain security measures which prevent automatic installs from unknown sources.
Outside of Android Market, downloading & installing are two separate steps. The QR code which takes a user to a web page, that bit is easy: Just embed a URL in a QR code. When the user goes to the page, they can download the APK file as an attachment (just link to it somewhere on the page).
However, the user then needs to manually select the APK from their downloads section, and explicitly indicate they wish to install it (just a button click). The user also needs to enable downloading from "unknown sources" on their device. This can be enabled in the Settings App, usually in a security area. The feature may be disabled by certain carriers. Note that any "Market" type app or mechanism for downloading APK's which didn't come pre-installed on the device is going to count as an unknown source (websites are counted as unknown sources)- For instance, using the Amazon Market app requires a tick in that checkbox.

Private Android Application deployment/installation?

is it possible to create an android application that is meant only for internal use? Basically a private application not meant to be installed by non-approved phones?
If so what is the basic process of deployment? How do you get the app on the employees phone's?
thanks!
The easiest way is to email it to them. Any email with an .apk attachment will get an "Install" button that you can tap to install the app.
Installing from non-market sources needs to be enabled -- which is a bit of a security risk -- but the user will be prompted to turn that on if they need to, and even given a button that will take them right to the appropriate settings page. The whole process is really quite slick. :)
Alternatively, you can copy it to the phone (e.g. after connecting the phone in USB storage mode) and then use a file system app to locate the file and install it.
Emailing it is the easiest way, however.
Edit: I'm assuming you meant private as in "only sent to certain individuals" and you're not actually looking for a method that will prevent the apps from being run on non-approved devices should they end up on one.
There's a proper way to do it now: Google Play Private Channel for Google Apps. You publish app on Private Channel and then send invitations to users. It won't be seen by other users of Google Play.
Option 1
Using Google Play Private Channel is probably the best way, but is useful only for Google Apps users.
Option 2
You can use new Developer dashboard options that let your app be in Alpha or beta phase and is available to only selected google accounts (using groups or google plus circles). Your app can stay in beta indefinitely so not become visible to other users. if you like this method you can also use services like TestFlight.
Option 3
Mail distribution is also ok it's even mentioned in documentation which I find a little bit odd, but I would advise you to use some file storage like Dropbox and just distribute the link to selected people.
Two major ways:
You can either use the non-market application installation method, or adb from a connected PC to install an apk which you distribute as a bare file. The downside is that anyone in possession of the apk can install your application.
Alternatively, you can distribute the application through the android market, but make it require an account on a server you control in order to do anything useful. The upside is that possession of the apk doesn't get an unauthorized user much; the downside is negative ratings from confused randoms, and that you've made your apk very available for interested parties to know about and decompile. (There is or was also a way to put an app on the market but not list it so it was only accessible via a full url, however don't rely on that)
Yes. As of right now I use such a method, I have to manually load the app on the phone, however other techniques can be used. Once loaded the app checks the main server to see if it is up to date. If it is not, it downloads and installs the new version of itself.
If you go to your eclipse workspace and go to yours app's folder, in the bin folder assuming you develop with eclipse, you will find a .apk file somewhere in there. Copy it to the phone and then use something like EZ File Explorer (or something like that) to access your android filesystem, click on the .apk and it will install and be ready to use.

Android app - publish but not make it accessible through android market search

Here's the scenario i am trying to achieve:
Publish/have an app in the Android app store
However - i do not want it to be searchable through the android market search, etc.
The only way people can access the app is if i give them an explicit link to download
Is above possible? If so - how? All FAQs/instrucitons i have seen publish & make it searchable for the whole world - but i want it only accessible through #3 above.
Thanks.
Try this site https://www.push-link.com/, you can upload apk on your private account and only can be accessible thorough automatic generated link and QR code. This service contains user notification on new versions and bug reports.
Two things that are problematic with the link to an APK approach:
Some of the devices out there (I m only aware of the Motorola Atrix) don't have the "Unkown Sources" option, meaning that this won't work on them.
You loose the ability to auto update the app if you want.
I would recommend adding a login process where only your users will have access to the actual application. This way, you still have the Market advantages and only those people can activate the application.
The main disadvantage is that the application will be open to search in the Market, but as far as I know, this won't be a problem since people will immediately uninstall it since they won't be able to activate it.
In your case, what I do is, I dont upload the application to the Market and distribute it from my server.
I mean this is simple, sweet and it also saves my $25 for the market account...
Don't do this. Just publish the APK to your own website, then give the users the URL to the APK, they can download and install it directly. The only thing they'll need to do is ensure that Menu-Settings-Applications-Unknown sources is ticked.

Categories

Resources