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.
Related
How can I get a link for my app to the market place while in alpha or beta? It's my first app so I want to try functionality related to the market place before releasing.
Did you have a look at the format of Play Store URLs?
https://play.google.com/store/apps/details?id=com.stackexchange.marvin
Or to be more generic:
https://play.google.com/store/apps/details?id={applicationId}
Play Store URLs evolve around your applicationId, so to link to your own app you can take the base link and substitute {applicationId} with your applicationId.
If you would like to use a global constant—which is especially useful in case you have different flavors—you can use BuildConfig.APPLICATION_ID.
so I want to try functionality related to the market place before releasing.
Just keep in mind that you will receive error messages opening the link until your app is visible, even if you do have the correct link.
Currently, I'm looking to see if there is a way to sync the information we've obtained through an online site with the information we use on a phone application.
All I need to know is that the user that visited our site is the same user that is using our phone application, No stats and preferably no one needs to enter a thing.
You won't get that from Apple, because of their history with privacy concerns, but you could do something like generate an identifying number in your app, that your web site asks for, that would tie the two together. Of course, you'd have to make allowances if your app is deleted from the device, then re-installed, to either make sure you're generating the same number, or other such solution as befits your requirements.
The first thing that would come to my mind is Google Analytics, available for different platforms and services (i.e. Youtube, etc). You would have to go through Google Analytics API to figure out a way on how to track a particular customer visit across several location/platforms.
See Hello Analytics example of Google Analytics API
See Data Feed API
Ok, so far I've answered my own question for androids. Apparently you can pass a referrer param through google play which actually allows your app to receive the parameter and they even have an app that test this functionality.
https://play.google.com/store/apps/details?id=net.stevemiller.android.referrertest
now I have yet to test this, nor is it a possible solution for iOS.
Use case:
We have a container App which comes without the needed content preinstalled.
Only after installing the App, users choose which items they want to install. The items here are "city packs", that is data for rendering maps, routing offline etc.
It would be very attractive for several reasons to be able to create Appstore entries for specific cities. However we don't want to get into a mess by really duplicating the App (maintenance overhead, fragmentation, potentiall confusing for users).
That's why I was thinking about something like this:
The additional Appstore entries install a minimal App (I'll name it client App) which essentially just launches the main App with some parameters. On Android that should be possible with Intents, on iOS with custom URL schemes.
Since I don't know of any App using that approach, I wonder if they exist and if it's possible.
There are however 2 potential issues I see with that approach:
If the main App isn't installed when one of the client Apps wants to launch it, the client App can still open the App page in the Appstore. At that point however the client App will lose control and I guess will not be able to have the main App launched with a parameter set. Is that correct?
Would Apple accept such an App?
I'm not sure if what you want to do is possible, but with my experience with Apple it is unlikely that they'd be happy with many different parts of the app being separate... I may be wrong, but that's how I think it'll go...
Have you thought about using in-app purchases? Even if the packs are free i'm sure you can set the cost to 0 and have the data download then?
I have a project for Android. In this project my client asked me following scenario but I'm not sure that it is possible.
They want to create an app-store for android. In this store after developer uploads his application we should wrap this APK file with our APK file (therefore we will have one APK file). This wrapper adds some activities to developer's application in order to able users to check their credits and add credits if they have not enough credit to their account (we don't want to manipulate the developer's code, we just want to add our code into their code). Therefore, when user download and install this application, each time he/she launches the application, our wrapper should be run first and check his/her financial account through Internet, if s/he has enough credit in his account, therefore s/he is free to use the application. If s/he didn't have enough credit we should guide him/her to buy more credit.
The things that I did, I created two sample project to see if I add APK of one to second, may I run that application from second application.
In the first application I just show some text in its activity and in second project (wrapper) I created a button that when I click on it, first project should be run. The result was not satisfactory and I couldn't run it.
I think if I export JAR file from first project and repeat above procedure I'll have better results but because in future we can't ask developers to put JAR file of your application instead of APK, it is not a good idea.
Now, for around a week I was thinking about this story and I couldn't find a way to know how can I consolidate and merge developer's application with our wrapper application.
If you have any suggestion please guide me.
The best way to get something along those lines is going to be as follows.
Setup a few permissions for accessing data from your "store" application. using these same permissions you can detect if any of these apps are installed on their phone.
Your going to want to make a ContentProvider that access the users account info and retrieves that information in your "store" application. Using this content provider you setup an api for accessing user information in the third party apps.
At this point you should have access to all users info (also use credit) and know if they have those applications installed.
Now for the third party apps
My suggestion make a jar file that uses the content provider. Also activities that do some basic stuff like making sure your store is installed and stuff. Bundle that app and have your 3rd party developers use it when making apps.
setup a sample application for using your jar and proper documentation. Very important always so hard when there isn't proper documentation on a jar file. But basically you should have static and helper classes for every aspect of interacting with the users account. And the application should only be asking for permission on using this information.
Here's a few content provider tutorials also a link for manifest settings to get the provider to work with permissions.
http://developer.android.com/guide/topics/providers/content-providers.html
http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
http://www.devx.com/wireless/Article/41133/1763/page/2
http://about-android.blogspot.com/2010/04/content-provider-example-1.html
http://developer.android.com/guide/topics/manifest/provider-element.html#prmsn
One last thing if you don't want third party application appearing on a user normal launcher for some reason you can request that developers also not add CATEGORY_LAUNCHER to their main activity. In which case you will have to query for the main activity in your store application.
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.