I have an existing application on PLAY STORE with 1.5 GBs of data hosted on and downloadable from an external server.
After installing the application I am asking the user to download the data and set the path for it in the application.
Now I want to integrate the Expansion file mechanism in this application.
My questions are:
Is it possible to update the application with the Expansion File mechanism in which New users are able to download the data through the expansion file and existing users (after updating apk from the Play Store) don't need to download the expansion file again and can continue with the old data?
This is the paid application which is using GOOGLE Licensing as well; so if the above is not possible and if it's needed to upload a new application with a different package name and unpublishing the current application, then how to maintain existing users' (old application) Licensing?
Thanks in Advance.
Neither is possible:
Re 1: Google Play usually downloads the expansion file right along with the APK.
Re 2: Apps can only verify their own license not the license of other apps using Google's License Verification Library.
Related
We have an Android application that supports up to 5 languages. If we were to pre-install a set of data, we would normally add 5 zip files (1 for each language). However, the data has since grown to be 100Mb each. As such, its not possible to package all the 5 zips in the assets folder.
What options do we have to creating a APK with pre-installed data? Is it possible for users to install a extension pack based on their device locale? Or do we have to upload 5 APKs in the Play Store, one for each language.
In documentation, it is given -
Google Play currently requires that your APK file be no more than
100MB . If your app exceeded 100MB, you had to host and download the additional resources yourself when the user opens the app.
Read this about APK Expansion Files.
Also, In this answer, it is given how to make .obb file as .zip file and upload it on Play Store.
OR
You can also make a check on App opens / or ask the user to download the language pack and download it directly from the server .(That would be simpler and easier one).
My game 160MB of size, I separate it one apk and one main OBB, the question is, is it possible if publish it together but need user download only apk, it will download obb in the game later? The point is made it look smallest size of the game for download in google play and using google play server host instead of using our host.
From the documentation, If Google Play is able to download the expansion files (which is the case for most devices), it downloads them along with the APK. If Google Play is unable to download the expansion files, it downloads the APK only.
When the user launches your application, your app must check whether the expansion files are already saved on the device. If yes, your app is ready to go. If no, your app must download the expansion files over HTTP from Google Play.
So Google Play will always try to download the expansion file(s) at the same time if downloads the APK, so your application has everything it needs when the user opens it for the first time. Unless there is no available space to save the expansion file(s), or no network connection. So, no way to force users to download the APK only in most cases.
As #ztan said, in the worst case need to publish only apk file and download obb in the first time from our host.
Is it possible to download any number of apks onto an external storage from an Android app? I want to download certified Android apps from the Play Store for analysis purpose.
I've thought about writing a web crawler that would use the Play Store as the root URL. The PlayStore however downloads and installs all APKS straight to the device. There is also no Google Play Store API that would take care of the authentication.
I thought it would be fun to write an app that would do the same and download all the apks and store them in the external storage instead of the /downloads.
Any tips, leads or suggestions greatly appreciated!
Thank you
Is it possible to disable the automatic download of the APK expansion file when you download the application from google play?
Can I force google play to disable the download and let the application download itself the expansion file?
Thanks
If it's your own application you want to test, the best option is to install localy the .apk file on your device without the expansion pack. Upload the application and expansion pack to Google Play and activate it without publishing. When you first start your application, the expansion files will be downloaded from Google Play. This way you can test your expansion files downloader.
#Kai
Is there a specific reason for you to wish for downloading the files yourself?
Yea, our App has many stages(game), each requires its own specific data(media), so downloading only the required data will help increase convenience of the user by avoiding unwanted paid mobile data usage...
I am using concept of Android Expansion which helps us to remove obstacle of 50mb limitation of Apk.
Following all the steps http://developer.android.com/guide/market/expansion-files.html
I understood that you need to follow file format like this [main|patch].<expansion-version>.<package-name>.obb and did the same.
And also Expansion files may be in (ZIP, PDF, MP4, etc.) format.
I uploaded additional expansion files while publishing apk on Google play. At the time of download apk I get all the additional in my Local(Advanced latest Device), But through code I am not able to get the expansable files of my application.
In code looking at the sampleDownloader code I came to know that it requires three parameter (int type, int expansionCode, long fileSize)
here type: main/patch expansionCode: integer value but I am just wondering how to give FileSize in Long(exact)? and second thing its show message like Download failed because the resource could not be found
Any idea?
Update
Done, all steps are shown here
Did you go through Downloading the Expansion Files? It mentions that
If the expansion files are not there with your Application downloaded from Android Market,
You have to perform Application Licensing to get your app's expansion file names, sizes, and URLs.
Perform a request using Google Play's Application Licensing to get your app's expansion file names, sizes, and URLs.
Use the URLs provided by Google Play to download the expansion files and save the expansion files.
UPDATE:
No, its not compulsory that Google Licensing only works with paid Application. There is a clear Note: defined in the Docs itself that any application may use licensing service to initiate the download of an APK expansion file. But, in that case your request will be only for expansion files and not for a check whether the user paid for the app or not.