I'm about to put my Android app, which uses google api v1 onto the market. I now see that v1 has been depreciated and that I am urged to use v2 instead. I see that v2 appears an order of magnitude more complex and that google play services are needed.
Since google play services are needed does that mean that my app will only be able to be distributed on google play and not, say, be distributed from my own web site?
thanks, Gary
Since google play services are needed does that mean that my app will
only be able to be distributed on google play
No, you can still distribute through any channel you want. It is a requirement for the device, not the distribution. The device your app installs on needs to have Google Play Services installed, which a number do. It is very similar to the v1 maps which required the phones have Google Maps installed, reflected in the manifest via
<uses-library android:name="com.google.android.maps">
Google likes to keep everybody using their own system as per usual. But it should still be possible to distribute via your website. You would need to save it as a .apk file.
Heres how to save as .apk file
and Heres a tutorial on how users can download and install.
Related
While downloading Android 8.0 sdk platform using Android Studio, I see these two system images.
Google API intel x86 atom system image
Google Play intel x86 atom sytem image
What is the difference between these two?.
The play image has the Google Play store already installed and you can install apps, but there is no root access as it is a production build and not a debug build.
The main difference between Google API system image and Google Play system image basically lays on the capabilities of each one to access the Google Play Store directly or not.
Here is for more explanation regarding that matter.
Hope, could be a helped for the other.
"Google APIs" images include the Play services that many apps rely on but no Play Store app
"Google Play" images include both the Play Store app and the Play services
For Google's description, see Create and manage virtual devices | Android Developers
What all answers are missing: If you use the billing library from Google, you need the "Google Play image" for testing. This has nothing to do with installing apps, but you need the Play Store installed to test your "in-app" purchases and subscription products.
Otherwise you will get this error from BillingClient:
Billing service unavailable on device
Based on Documentation:
A system image labeled with Google APIs includes access to Google Play services. A system image labeled with the Google Play logo in the Play Store column includes the Google Play Store app and access to Google Play services, including a Google Play tab in the Extended controls dialog that provides a convenient button for updating Google Play services on the device.
To ensure app security and a consistent experience with physical devices, system images with the Google Play Store included are signed with a release key, which means that you cannot get elevated privileges (root) with these images. If you require elevated privileges (root) to aid with your app troubleshooting, you can use the Android Open Source Project (AOSP) system images that do not include Google apps or services.
I hope helped you.
Let's say i have an xaiomi device that doesn't have a license for using google apps(Google App Services) but only have the android system on it(hence the device is suppose to be more cheap). So is an app that uses a google map services can be used in the device?
No. When you try using the Play Services SDK, it will look for the Play Services Framework and not find it and give you some sort of unrecoverable error.
Your choices are:
Build the app using something other than Play Services (e.g., OpenStreetMap or MapBox for maps instead of Maps V2).
Use different product flavors of your app for different distribution channels (e.g., a google flavor for distribution through the Play Store and an other flavor for distribution outside of the Play Store). You can use Play Services in the Play Store flavor and use some alternative for the non-Play Store flavor. This is more work, but if you feel that the Play Services results will be much better for the user, it may be worth the effort.
I have a library android project with size 200kb. Now I want to use GCM in it. To use GCM I have to include Google Play Services, which increases my project size by 1 MB making it to 1.2 MB which is kind of bad. Any work around for this?
Thanks in advance!
From the Google Play services version 6.5, you can selectively compile Google Play service APIs into your app.
To include GCM part only, use:
com.google.android.gms:play-services-gcm:7.8.0
I would recommend you to use google play service library either if it increase the size of your apk.
Please visit this link
Google Cloud Messaging for Android library vs. Google Play Services
Check the device to make sure it has the Google Play Services APK. If it doesn't, display a dialog that allows users to download the APK from the Google Play Store or enable it in the device's system settings.
It will save you memory in project.
I have released a game that uses Google Game Services on Google Play. Everything works, but when I look on my game in Google Play it doesn't show that it's using Game Services. Some other games do (like Riptide GP for instance). What is controlling this?
Implementing the Google Play Game Services features is not sufficient, your users have to use the service for you to get the badges.
Let me quote from this video from Google I/O 2013: Practical Android Games Development
http://youtu.be/ZbQWf7C5ymU?t=23m39s
"As you get more users you will get badges. [...] However, they are not just given out because you put them in the config, and we don't snoop your APK to see if you are making API calls from there. We verify how much the feature is being used and if you meet certain threshold we give you a badge. So you need to actually integrate it, it is not a token thing that you can put there to get more eyeballs in the store."
Is it possible to use Google Maps Android library in my app in a way, that the app can be installed even on phones without Google Maps? On phones without Google Maps, the maps feature would be disabled.
Is it possible to use Google Maps Android library in my app in a way, that the app can be installed even on
phones without Google Maps?
There is an undocumented android:required="false" flag you can put on the <uses-library> element. I am hopeful that they will document this in a future release. With that set to false, you would need to use reflection to see if Google Maps is loaded (e.g., try to find the MapView class) -- if not, disable whatever would lead the user to a map.
If anybody else has the same problem (I do):
On this Android Developer page it says -- as far as I can tell -- that you can reference the Maps API and thus have e.g. a map activity in your app by using Google Play services:
"The Google Maps Android APIs are not included in the Android
platform, but are available on any device with the Google Play Store
running Android 2.2 or higher, through Google Play
services.
To integrate Google Maps into your app, you need to install the Google
Play services libraries for your Android SDK. For more details, read
about Google Play
services."
Apparently it is an actual app (it is installed on my phone) that updates certain Google stuff.
So it seems it is possible, but only for devices running Android 2.2 (API level 8) and above.
I find the explanation on that site a bit unclear, however, and I have not been able to test this on my own.
In my case, I guess I have to live with the fact that not all devices will be able to install my app, since I target an API < 8.