Is it possible to use AMAPI to publish self-hosted/private app's to a device that is either using work profile or is fully managed without using the play store?
I am confused because what the answer i'm seeing in the following post doesn't jive with Google's documentation.
How can I silently push an apk and get it installed by android device policy using android management api?
User "Fred" in the above link says this operation is not possible however, the documentation at this website lists it as "Optional"
https://developers.google.com/android/work/requirements?api=clouddpx#313-self-hosted-private-app-management
Second question, using AMAPI requires the Android Device Policy on a device, can we use a custom DPC in conjunction with ADP to publish our private apps given that they are hosted via an EMM?
Unfortunately no!
The options you have is to use the play store/ private play store if you are using Android Management API.
Or integrate iFrame of Play Store - https://developers.google.com/android/management/apps
Self hosted APKs are again installed via Play store but it's hosted on your cloud.
As of now there is no way to install Apps without using play store!
Related
I am able to build a small EMM project using new android management APIs. My use case is dedicated users device management, where we manage both hardware and the apps for our clients. All the app updates part I have been reading is using public apps or the private apps where the client will update on their device. But In our case we want up load a private app and provide updates programmatically. I have tested public app from google play store and it works fine with device policy controller. How do I access my private apps ? Also most of the documentation you see is for device admin Management related where google used to host the EMM . I am looking for the latest Android Management API solution where there is no console and we have to build one.
Update:
I am able to private publish to managed google console using this link
https://support.google.com/googleplay/work/answer/9146439
But when I apply (DPC)device policy controller to install this app .it is not happening. I tested with one of our own public apps using DPC and it installs and uninstalls instantly . Any one knows where am I going wrong ?
Any help is appreciated ....
Make sure that your private app is distributed to your enterprise. You can check this link to know more about distributing your private app to an enterprise. You can also use check this ApplicationPolicy which can push apps as part of the enterprise policy.
I see that on PlayStore I can publish a private app to my customers if they has a OrganizationId.
I don't understand the role of "Play Custom App Publishing API","Android Management API
".
Is possible to develop a private enterprise store based on playstore ? I'm confused.. The world of private app for enterprise is soo few documented
There are 3 types of app distribution available using the Google APIs:
Public Google hosted apps - The app is available through the Play Store and not restricted to a specific enterprise. This type is supported by the Android Management API using an application policy.
Private Google hosted apps - The app is a private app (restricted to a single enterprise) but hosted by Google. This means your app will be uploaded privately to the Play Store and it will be available only to devices enrolled within your enterprise. This type is supported by the Android Management API using a managed iFrame for uploading APK files and an application policy to deploy the apps. Deployment is the same as with public apps where you use the package name of the app.
Private Self-Hosted apps - This type is fairly complex, but it does not require you to upload an APK to the Google Play store. Instead, you generate JSON meta data definitions of your APK and you only publish this meta data at Google. When you'd like to install an app, Google are actually using that meta-data to fetch APK files from your enterprise server.
Options 1 and 2 work for both work profile and device owner enrollments, while Option 3 works only for device owner enrollments. Furthermore, it seems it is only limited to the now closed EMM API.
The Play Custom App Publishing API is actually a way to manually create or update private APK uploads. So instead of using the Android Management API iFrame, you can use the publishing API to create your own in-house UI.
Depending on what you exactly mean, you may be able to build your own private store using the private apps functionality and the Play Custom App Publishing API to build your own UI for publishing apps. Be advised that there is a package name restriction imposed by the Play Store. There can be no 2 apps sharing the same package name uploaded to the Play Store. It does not matter if these are private apps, visible only for one enterprise. This rule applies globally for the whole Play Store.
Private Google hosted apps aren't restricted to a single enterprise. It can also be distributed to other organizations. Each company, or "enterprise", that allows employees to use their phones for work or gives devices to employees, manages those devices and decides which apps are available. If you don't want your app to be available to download from Play by consumer, but only by business that you've worked with, you might consider making your app "private" to just those companies that you work with. Each company will need to give you their "Organization ID" or "Enterprise ID" to make your app visible to that company.
Private self-hosted apps are actually called Externally hosted private apps. You can check this link for more information about externally hosted private apps.
For your use case, would it also work to use in-app purchases to enable app sales?
I am working of app support COSU app android. The app is working fine for me but I am not understand how user will update our app, because COSU app user can't access any other application even google play store. So now the question is that how user will update our application without google play access.
I have one solutin download app from our server, but in this case user will lose save data like the data we are storing in SharedPreference. Please guide me if you have any other solution for that. Thank in advence
According to Google's docs on COSU (Google Play app management), it is possible to "install, update, and uninstall apps using the Play EMM API". Under "Google-hosted private app management" it describes the ability to host private apps through Play that your users can install/update:
Simplifies the Google-hosted private app publishing and update
workflows available to all admins through managed Google Play, by
enabling admins to update Google-hosted private apps through the EMM console instead of through the Google Play console.
Enterprise admin can upload new versions of apps that are already published privately to the enterprise using the Google Play Developer Publishing API.
If you don't want to use Play for this functionality you can read the "Self-hosted private app management" section.
You can also look at "Managed Google Play" to publish private apps for your users: https://support.google.com/googleplay/work/topic/6145152
After you register for a Google Play Developer account and set up the correct administrator privileges to upload and publish the app to managed Google Play, you can use the Enterprise Mobility Management (EMM) console to distribute the app to users.
Going the EMM route will let you update apps with the same functionality as regular Google Play apps where updates don't cause users to lose data. Unfortunately Google's documentation isn't detailed or centralized for this feature. Going through Google will also require that all of your devices are signed in to Google account in order to install apps or receive updates that you deploy though the EMM console.
Another option is to use a mobile device management (MDM) solution. If you have Samsung devices you can look into Samsung Knox which has a much simpler method for distributing your app: https://www.samsungknox.com/en/article/manage-apps
Another MDM option for single use apps is Mason (https://bymason.com/). Mason lets you upload your app, select any or all of your devices, and then deploy your APK to your users. When updating your app, all you have to do is increment your app version and the update functionality will be the same as a regular Google Play update. Your users also don't have to be signed in to a Google account.
If this sounds useful to you feel free to reach out to me trevor # bymason.com
DISCLAIMER: I work at Mason
Working on a device-owner application (installed at provision time with NFC), so far I did not find any way to provision devices directly with a PlayStore-based-App, that is why I keep using a private distribution mode for my apk, directly downloaded from a private server...
In this context here is my question: is there a way to use GCM with an App that isn't distributed on the Google Play Store?
Developers will be able to sign-up for GCM for both Play and non-Play apps. However, GCM stats will be available for only published Google Play apps. So yes, I believe you can use GCM with a non-Play Store app.
I am trying to access Google Drive files from my android app and my website.
I used two client ids, one for the android app (Client ID for installed applications) and the other one for the website (Client ID for web applications). Those client ids are belong to the same google apis project.
Both Android and web applications are working properly. They can upload and list files. (their scope: https://www.googleapis.com/auth/drive.file = Per-file access to files created or opened by the app)
Here is a problem,
Files that uploaded from Android app are not visible from web application...
I guess even if Android and web app have client ids from same google apis project, Google does not think they are one application service.
Is there any way to solve this problem?
I wonder if there is a way to use one same google apis client id to web and Android app, or grant permission to read and modify files from both apps.
This is a known limitation from Android's OAuth 2.0 flow that will be resolve with the release of the Google Play Services (coming soon).
Take a look at this Google I/O 2012 session to learn more about how this works: https://developers.google.com/events/io/sessions/gooio2012/121/
In the meantime, one workaround you can use is passing the API key along with each request using the ?key=<API_KEY> query parameter.