voltmx.gms Namespace
The voltmx.gms Namespace contains the following API elements:
Constants
The voltmx.gms namespace provides the following constants:
Dialog Status Callback
Constant | Description |
---|---|
GMS_UPDATE_REQUEST_ACCEPTED | The user has accepted the Google Play Services update request. |
GMS_UPDATE_REQUEST_CANCELLED | The user has canceled the Google Play Services update request. |
GMS_UPDATE_REQUEST_NOT_SHOWN | The Update dialog box does not appear as the API is invoked in the background without displaying the UI. |
Request Status Callback
Constant | Description |
---|---|
GMS_UPDATE_REQUIRED | Security Crypto Provider patching is not done as Google Play Services requires and update or is disabled on the device. |
SECURITY_PROVIDER_UPDATE_NOT_POSSIBLE | Security Crypto Provider patching can not be done as Google Play Services is not available on the device or an unresolvable error was encountered during patching. |
GMS_UPDATE_INPROGRESS | Security Crypto Provider patching is not done as an update to Google Play Services is being installed on the device. When the Google Play Services update is in progress, the dialog box is not displayed, and Security Crypto Provider patching is skipped in silent mode. |
SECURITY_PROVIDER_UPDATE_SUCCESS | Security Crypto Provider patching is successful. |
GMS_LIBRARY_MISSING | Security Crypto Provider patching is not done as the GMS (Google Mobile Services/Google Play Services) Library is not bundled with the application (during the build process). To bundle the GMS Library with the app, follow the steps mentioned here. |
Hints StatusCodes
Constant | Description |
---|---|
HINT_RETRIEVAL_SUCCESSFUL | Represents the successful retrieval of credentials from the hint. |
HINT_RETRIEVAL_CANCELLED | Represents that the user has dismissed the hint picker dialog and the hint retrieval is in the canceled state. |
NO_HINTS_AVAILABLE | Represents the state where no hints are available. For example, when no email account or phone number is associated with the device. |
PLAYSERVICES_AUTH_LIBRARY_MISSING | Returned when the required Google Play Services Library is not implemented. |
GMS_LIBRARY_MISSING | Returned when the GMS (Google Mobile Services) library is not implemented. |
GOOGLE_PLAY_SERVICES_UNAVAILABLE | Returned when the Google Play Services are missing. Use the GMSErrorCode key to retrieve the Native Error Code associated with the Google Play Services Error. |
Functions
The voltmx.gms namespace provides the following functions:
voltmx.gms.requestHint
The requestHintAPI displays a list of email addresses and phone numbers that are registered with a device as hints to the user (based on the values of the hintTypes parameter). Users can then select and retrieve a hint from the available hints displayed in the list.
In situations where users need to fill input text fields with email address or phone number (such as in a Sign-in or Sign-up forms, or sms verification), this API helps users retrieve appropriate hint texts relevant to the input field. These user hints help speed up the on-boarding or verification process for an app.
Syntax
voltmx.gms.requestHint({
"callback" : callback,
"hintTypes" : \[voltmx.gms.HINT\_TYPE\_EMAIL,voltmx.gms.HINT\_TYPE\_PHONE\_NUMBER\],
"showCancelButton" : false
});
Input Parameters
Parameter | Description |
---|---|
callback [Function] - Mandatory | A callback function that is executed after the API call is complete. This function contains a result info object with the following keys: statusCode - A StatusCode constant. GMSErrorCode - The error raised by the underlying Google Mobile Services. The value for this key is set only when the statusCode returned is voltmx.gms.GOOGLE_PLAY_SERVICES_UNAVAILABLE . selectedHint- Contains the following information about the hint that is selected by the user. id - [String]: Typically, the id is an email address, user name, or phone number. The id may also be an encoded unique identifier for a federated identity account. > Note: Phone number identifiers are normalized to the E.164 standard. userFullName - [String]: The display name of the id, if available. Typically, the display name will be the name of the user or some other string that the user can easily recognize and distinguish from other accounts that they may have. userFirstName - [String]: First name of the user userLastName - [String]: Family name or surname of the user profilePictureURI - [String]: The URL to an image of the user, if available. |
> Note: The value for this key is set only when the statusCode returned is voltmx.gms.HINT_RETRIEVAL_SUCCESSFUL . These values are available only when the native code returns it. |
| | hintTypes - Mandatory | Specifies the types of the hint to be retrieved in an Array. The hint type must be specified using the following constants: voltmx.gms.HINT_TYPE_EMAIL: When hints must be requested for the email address field. voltmx.gms.HINT_TYPE_PHONE_NUMBER: When hints must be requested for the phone number field. In a situation where the user might be indecisive about the type of field, both the constants can be passed in the form of an array to populate both email address and phone number hints. | | showCancelButton - Optional | Specifies if a cancel button must be displayed for the hint dialog. By default, the value of this parameter is set to true. |
Example
signupForm1(){
voltmx.gms.requestCredentialHints({
"callback" : this.callback.bind(this),
"hintTypes" : [voltmx.gms.HINT_TYPE_EMAIL,voltmx.gms.HINT_TYPE_PHONE_NUMBER],
"showCancelButton" : false
})
},
callback(info) {
if (result.statusCode == voltmx.gms.HINT_RETRIEVAL_SUCCESSFUL) {
this.view.tbEmail.text = info.selectedHint.id;
this.view.tbUserName.text = info.selectedHint.userFullName;
this.view.tbFirstName.text = info.selectedHint.userFirstName;
this.view.tbLastName.text = info.selectedHint.userLastName;
}
}
Return Value
List of hints
Remarks
Ensure that you add the supportGooglePlayAuthLib=true
entry in the androidbuild.properties file.
Platform Availability
Android
Attestation API
voltmx.gms.safetynet.attest
This API provides attestation results for the device.
An attestation result states whether the device on which the API is invoked matches the profile of a device that has passed the Android compatibility test.
When you request a compatibility check, you must provide a nonce, which is a random token generated in a cryptographically secure manner. You can obtain a nonce by generating it within your app, each time you make a compatibility check request. As a more secure option, you can obtain a nonce from your own server, using a secure connection.
A nonce used with an attestation request must be at least 16 bytes in length. After you make a request, the response includes your nonce, so that you can verify it against the one that you sent. Ensure that you use a nonce value once, for a single request. Use a different nonce for any subsequent attestation requests.
The result is returned through the success or failure callbacks.
Syntax
voltmx.gms.safetynet.attest(apikey, nonce, successCallback, failureCallback);
Input Parameters
Parameter | Description |
---|---|
apiKey [String] | An Android API key obtained from the Google developer console. |
nonce [String] | A cryptographic nonce used for anti-replay and tracking of requests. |
successCallback [Function] | The callback function that must be executed when communication with the service is successful. This callback is invoked with an argument in string format that is a cryptographically-signed attestation. This parameter does not indicate if the device has passed SafetyNet attestation. |
failureCallback [Function] | The callback function that must be executed when the API call fails. The signature of the callback function is failureCallback(errorCode,errormessage), where the errorCode parameter is a SafetyNetStatusCodes constant, and errorMessage parameter is a string containing the reason for the failure. |
Example
var uuid = voltmx.os.createUUID();
var timestamp = new Date().getTime();
var nonce = uuid + timestamp; // generating nonce at client. However generating at server is best practice.
var apiKey = “google_api_key”; // check reference links to know how to get the API key.
voltmx.gms.safetynet.attest(apiKey, nonce, successCallback, failureCallback);
function successCallback(result){
}
function failureCallback(errorCode,errormessage){
}
Return Value
None.
Remarks
None.
Platform Availability
- Android
Verify Apps API
voltmx.gms.safetynet.isVerifyAppsEnabled
This API allows your app to determine whether the user has enrolled for the Verify Apps feature.
The result is returned through the result callback.
Syntax
voltmx.gms.safetynet.isVerifyAppsEnabled(successCallback, failureCallback);
Input Parameters
Parameter | Description |
---|---|
successCallback [Function] | The callback function that must be executed after the execution of the API call is complete. The function contains information whether the Verify Apps feature is enabled or not. This callback is invoked with an argument in boolean format, where the value true means that this feature is enabled. If the value is false, the feature is not enabled. |
failureCallback [Function] | The callback function that must be executed when the API call fails. The signature of the callback function is failureCallback(errorCode,errormessage), where the errorCode parameter is a SafetyNetStatusCodes constant, and errorMessage parameter is a string containing the reason for the failure. |
Example
function isVerifyAppsEnabled() {
voltmx.gms.safetynet.isVerifyAppsEnabled(successCallback, failureCallback);
}
function successCallback(result) {
alert("isVerifyAppsEnabled API result is " + result); // Perform the appropriate action based on the result.
}
function failureCallback(errorCode, errorMessage) {
alert("isVerifyAppsEnabled API failed with errorCode" + errorCode + " and errorMessage " + errorMessage);
}
Return Values
None.
Remarks
None.
Platform Availability
- Android
voltmx.gms.safetynet.enableVerifyApps
The API allows your app to invoke a dialog box requesting that the user enable the Verify Apps feature.
The result is returned through the result callback.
Syntax
voltmx.gms.safetynet.enableVerifyApps(successCallback, failureCallback);
Input Parameters
Parameter | Description |
---|---|
successCallback [Function] | The callback function that must be executed after the execution of the API call is complete. The function contains information about all the actions that the user has performed related to the Verify Apps feature, including whether they have given consent to enable it. This callback is invoked with an argument in boolean format, where the value true means that this feature is enabled. If the value is false, the feature is not enabled. |
failureCallback [Function] | The callback function that must be executed when the API call fails. The signature of the callback function is failureCallback(errorCode,errormessage), where the errorCode parameter is a SafetyNetStatusCodes constant, and errorMessage parameter is a string containing the reason for the failure. |
Example
voltmx.gms.safetynet.enableVerifyApps(successCallback, failureCallback);
function successCallback (result) {
alert("enableVerifyApps API result is " + result); // Perform the appropriate action based on the result.
}
function failureCallback(errorCode, errorMessage) {
alert(" enableVerifyApps API failed with errorCode " + errorCode + " and errorMessage " + errorMessage);
}
Return Values
None.
Remarks
None.
Platform Availability
- Android
voltmx.gms.safetynet.listHarmfulApps
This API identifies a list of installed apps that are known to be potentially harmful to the device. The list includes categories for the identified apps so that your app can take appropriate action.
The result is returned through the success or failure callbacks.
Syntax
voltmx.gms.safetynet.listHarmfulApps(successCallback, failureCallback);
Input Parameters
Parameter | Description |
---|---|
successCallback [Function] | The callback function that must be executed when the API call is successful. The signature of the callback function is successCallback(resultInfo), where, resultInfo contains an array of jsobjects, where each jsobject contains the following information: apkCategory [String]: Message about the potentially harmful app category defined in VerifyAppsConstants. apkPackageName [String]: The package name of the potentially harmful app. apkSha256 [String]: The SHA-256 of the potentially harmful APK file. |
failureCallback [Function] | The callback function that must be executed when the API call fails. The signature of the callback function is failureCallback(errorCode,errormessage), where the errorCode parameter is a SafetyNetStatusCodes constant, and errorMessage parameter is a string containing the reason for the failure. |
Example
voltmx.gms.safetynet.listHarmfulApps(successCallback, failureCallback);
function successCallback(result) {
var apps = "";
if (result != null) {
for (var index in result) {
apps = apps + "\n\nApp Details\n";
apps = apps + "apkPackageName " + result[index].apkPackageName + "\n";
apps = apps + "apkSha256 " + result[index].apkSha256 + "\n";
apps = apps + "apkCategoryMessage " + result[index].apkCategory;
}
}
if (apps === "") {
alert("no harmful apps found in the device");
} else {
alert("harmful apps found in the device \n" + apps); // do Appropritate action based on the result.
}
}
function failureCallback(errorCode, errorMessage) {
alert("listHarmfulApps API failed with errorCode " + errorCode + " and errorMessage " + errorMessage);
}
Return Values
None.
Remarks
None.
Platform Availability
- Android
Security Provider APIs
Note: Ensure that you include the GMS base library dependency in the app by adding the
supportGooglePlayBaseLib = true
entry in the androidbuild.properties file of the project. If you do not add this dependency, the security provider APIs return theGMS_LIBARAY_MISSING
constant in the request callback.
voltmx.gms.getSecurityProvidersList
The getSecurityProvidersList API returns a list of names all the providers that were installed during the life cycle of the app. In the list that is returned, the precedence order of the providers is preserved such that the first entry in the list is the default provider.
In case of successful provider patching, the first entry in the list must include a new provider from the GMS, GmsCore_OpenSSL.
Syntax
voltmx.gms.getSecurityProvidersList();
Input Parameters
None
Example
var providerList = voltmx.gms.getSecurityProvidersList();
voltmx.print("array values ::" + providerList);
if (providerList.includes("GmsCore_OpenSSL")) {
voltmx.print("PROVIDER UPDATED");
} else {
voltmx.print(" PROVIDER UPDATE required");
}
Return Value
List of provider names
Platform Availability
Android
voltmx.gms.installSecurityProvider
The installSecurityProvider API tries to install the security provider from Google Play Services into the application's process synchronously, and sets the provider as the default security provider.
If the value of the showUpdateDialog
parameter is set to true, an appropriate Google Play Services Update or Error Resolution dialog box is displayed to the user, if required (when the value of the statusCode
is set to GMS_UPDATE_REQUIRED). When the user performs an action in the dialog box, the updateDialogListener callback is triggered with the appropriate statusCode value (from the Dialog Status Callback Constants).
Even if the user selects Accept in the Google Play Services Update or Error Resolution dialog box (with the status code GMS_REQUEST_ACCEPTED), it does not imply that the installation of the security provider is successful. Users must download (or update to) the latest version of Google Play Services from the Google Play Store, and then invoke this API to install the security provider in the application process.
Syntax
voltmx.gms.installSecurityProvider(requestConfig);
Input Parameters
requestConfig - A mandatory parameter that is a JSON Object and contains the following fields.
Parameter | Description |
---|---|
showUpdateDialog [Boolean] - Optional | Set the value of this parameter to true to automatically display the Google Play Services update or Error Resolution dialog box. If you invoke this API when the app is running in the background (or there is no UI), the dialog box does not appear. The default value of this parameter is false. |
statusCallback [Function] - Mandatory | A callback function that provides the status of the provider update. The statusCallback function is a JSON Object that has the following keys: statusCode: A constant that specifies the status of installation, either success or failure. For the list of possible constants, refer Request Status Callback Constants. gmsErrorCode: The error code returned by native GMS library. This parameter is set when the statusCode is set to GMS_UPDATE_REQUIRED . showUpdateDialog: The value of the showUpdateDialog parameter that is passed when the API is invoked. This information helps in deciding if a GMS Update or Error resolution dialog box is already displayed when the statusCode is set to GMS_UPDATE_REQUIRED . |
updateDialogListener [Function] - Optional | A callback function that provides the status of the user action on the Google Play Services update or Error Resolution dialog box. The updateDialogListener function is a JSON Object that has the following keys: statusCode: A constant that specifies the status of the user action. For the list of possible constants, refer Request Status Callback Constants. gmsErrorCode: The error code returned by native GMS library that is used to display the GMS Update or Error Resolution dialog box. This parameter is set when the statusCode is set to GMS_UPDATE_REQUEST_CANCELLED or GMS_UPDATE_REQUEST_NOT_SHOWN . |
Example
function providersync() {
var updateRequestParms = {
"showUpdateDialog": true,
"updateDialogListener": requestDialogCallback,
"statusCallback": statusCallback
}
voltmx.gms.installSecurityProvider(updateRequestParms);
}
function statusCallback(status) {
var statusCode = status.statusCode;
var gmsCode = status.gmsErrorCode;
var updateDialogListener = status.showUpdateDialog;
voltmx.print("statusCode :" + statusCode);
voltmx.print("gmsCode :" + gmsCode);
voltmx.print("updateDialogListener requested :" + updateDialogListener);
if (statusCode == voltmx.gms.SECURITY_PROVIDER_UPDATE_SUCCESS) {
isUpdated = true;
voltmx.print("update successful");
} else if (statusCode == voltmx.gms.GMS_UPDATE_REQUIRED) {
voltmx.print("update required");
} else if (statusCode == voltmx.gms.GMS_UPDATE_IN_PROGRESS) {
voltmx.print("update in progress");
}
}
function requestDialogCallback(status) {
var statusCode = status.statusCode;
voltmx.print("statusCode :" + statusCode);
if (statusCode == voltmx.gms.GMS_REQUEST_ACCEPTED) {
voltmx.print("update request accepted ");
} else if (statusCode == voltmx.gms.GMS_REQUEST_CANCELLED) {
voltmx.print("update request cancelled");
}
}
Return Value
None
Platform Availability
Android
voltmx.gms.installSecurityProviderAsync
The installSecurityProviderAsync API tries to install the security provider from Google Play Services into the application's process asynchronously, by replacing the current security provider.
Syntax
voltmx.gms.installSecurityProviderAsync(requestConfig);
Input Parameters
requestConfig - A mandatory parameter that is a JSON Object and contains the following fields.
Parameter | Description |
---|---|
showUpdateDialog [Boolean] - Optional | Displays the status of the Google Play Services update. Set the value of this parameter to true to automatically display the Google Play Services update or Error Resolution dialog box. The default value of this parameter is false. |
statusCallback [Function] - Mandatory | A callback function that provides the status of the provider update. The statusCallback function is a JSON Object that has the following keys: statusCode: A constant that specifies the status of installation, either success or failure. For the list of possible constants, refer Request Status Callback Constants. gmsErrorCode: The error code returned by native GMS library. This parameter is set when the statusCode is set to GMS_UPDATE_REQUIRED . showUpdateDialog: The value of the showUpdateDialog parameter that is passed when the API is invoked. This information helps in deciding if a GMS Update or Error resolution dialog box is already displayed when the statusCode is set to GMS_UPDATE_REQUIRED . |
updateDialogListener [Function] - Optional | A callback function that provides the status of the user action on the Google Play Services update or Error Resolution dialog box. The updateDialogListener function is a JSON Object that has the following keys: statusCode: A constant that specifies the status of the user action. For the list of possible constants, refer Request Status Callback Constants. gmsErrorCode: The error code returned by native GMS library that is used to display the GMS Update or Error Resolution dialog box. This parameter is set when the statusCode is set to GMS_UPDATE_REQUEST_CANCELLED or GMS_UPDATE_REQUEST_NOT_SHOWN . |
Example
function providerAsync() {
var updateRequestParms = {
"showUpdateDialog": true,
"updateDialogListener": requestDialogCallbackAsync,
"statusCallback": statusCallbackAsync
}
voltmx.gms.installSecurityProviderAsync(updateRequestParms);
}
function statusCallbackAsync(status) {
var statusCode = status.statusCode;
var gmsCode = status.gmsErrorCode;
var updateDialogListener = status.showUpdateDialog;
voltmx.print("statusCode :" + statusCode);
voltmx.print("gmsCode :" + gmsCode);
voltmx.print("updateDialogListener requested :" + updateDialogListener);
if (statusCode == voltmx.gms.SECURITY_PROVIDER_UPDATE_SUCCESS) {
isUpdated = true;
voltmx.print("update successful");
} else if (statusCode == voltmx.gms.GMS_UPDATE_REQUIRED) {
voltmx.print("update required");
} else if (statusCode == voltmx.gms.GMS_UPDATE_IN_PROGRESS) {
voltmx.print("update in progress");
}
}
function requestDialogCallbackAsync(status) {
var statusCode = status.statusCode;
voltmx.print("statusCode :" + statusCode);
if (statusCode == voltmx.gms.GMS_REQUEST_ACCEPTED) {
voltmx.print("update request accepted ");
} else if (statusCode == voltmx.gms.GMS_REQUEST_CANCELLED) {
voltmx.print("update request cancelled");
}
}
Return Value
None
Platform Availability
Android
Error Codes
Code | Description |
---|---|
100 | The number of parameters is invalid. |
101 | The parameter type is invalid. |
Google Play Services Update and Error Handling APIs
Note: Before you use these APIs, ensure that you add the
com.google.android.gms:play-services-base
entry in the build.gradle file of the project. You can use the voltmx.gms.isBaseLibraryAvailable API to check if the entry is already available in the build.gradle file.
voltmx.gms.getStatusString
The getStatusString API returns the statusCode (that is returned by the voltmx.gms.isGooglePlayServicesAvailable API) in a human-readable string format.
The string that is returned can be used to display customized notifications (by using the voltmx.gms.showCustomErrorNotification) and custom dialogs boxes (by using the voltmx.gms.raiseGooglePlayErrorResolutionIntent).
Syntax
voltmx.gms.getStatusString(statusCode);
Input Parameters
Parameter | Description |
---|---|
statusCode [Number] | The statusCode value that is returned by the voltmx.gms.isGooglePlayServicesAvailable API. |
Example
function checkGMSAvailabiltity() {
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
if (voltmx.gms.isUserResolvableError(googlePlayServicesAvailabilityStatus)) {
var errorString = voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus);
// this errorString can be used in showing custom notification or dialogs.
} else {
voltmx.print("google play services are not available in device");
}
}
}
Return Value
String
A message that describes the statusCode that is returned by the voltmx.gms.isGooglePlayServicesAvailable API in a readable format.
Platform Availability
Android
voltmx.gms.isBaseLibraryAvailable
The isBaseLibraryAvailable API checks if the base client library is integrated with the application.
Syntax
voltmx.gms.isBaseLibraryAvailable();
Input Parameters
None
Example
var isBaseLibAvailable = voltmx.gms.isBaseLibraryAvailable();
if (isBaseLibAvailable) // This check is to ensure google play base client library is available
{
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
// Based on this googlePlayServicesAvailabilityStatus, user may proceed with gms feature
api calling or call resolution api to make google play services available.
} else {
voltmx.print("Base Client Library is not integrated with the application");
}
Return Value
Boolean
The API returns true if the base library is integrated with the app. If the base library is not integrated, the API returns false.
Platform Availability
Android
voltmx.gms.isGooglePlayServicesAvailable
The isGooglePlayServicesAvailable API checks if Google Play Services is installed and enabled on the device. The API also checks if the version of Google Play Services that is installed is not older than the one that is required for the app (based on the value of the minApkVersion parameter). If the value of the minApkVersion parameter is not valid, the voltmx.gms.isGooglePlayServicesAvailable API gets invoked without an argument.
Syntax
voltmx.gms.isGooglePlayServicesAvailable();
or
voltmx.gms.isGooglePlayServicesAvailable(minApkVersion);
Input Parameters
Parameter | Description |
---|---|
minApkVersion [Number] | The version of the Google Play Services library that is declared in the android:versionCode attribute of the AndroidManifest.xml. |
Example
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
// proceed with resolution api
}
Example 2
var versionCode = 203965037; // google play services apk version code
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable(versionCode);
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
// proceed with resolution api
}
Return Value
Number
This API returns the status code that indicates whether there was an error. The API can return any of the following values of the ConnectionResult class:
- SUCCESS
- SERVICE_MISSING
- SERVICE_UPDATING
- SERVICE_VERSION_UPDATE_REQUIRED
- SERVICE_DISABLED
- SERVICE_INVALID
Platform Availability
Android
voltmx.gms.isUserResolvableError
The isUserResolvableError API determines whether an error can be resolved through a user action such as, on a dialog box or a notification.
Syntax
voltmx.gms.isUserResolvableError(statusCode);
Input Parameters
Parameter | Description |
---|---|
statusCode [Number] | The statusCode value that is returned by the voltmx.gms.isGooglePlayServicesAvailable API. |
Example
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
if (voltmx.gms.isUserResolvableError(googlePlayServicesAvailabilityStatus)) {
// call resolution api
} else {
voltmx.print("google play services are not available in device");
}
}
Return Value
Boolean
The API returns true if the error can be resolved by using the Resolution APIs (such as voltmx.gms.showResolutionDialog, voltmx.gms.showErrorNotification, and so on). If the error cannot be resolved, the API returns false.
If the API returns true, you can invoke the voltmx.gms.showResolutionDialog API to display a dialog box.
Platform Availability
Android
voltmx.gms.makeGooglePlayServicesAvailable
The makeGooglePlayServicesAvailable API displays a dialog box to address any errors based on the value of the statusCode parameter.
The dialog box displays a localized message about the error, and upon confirmation from the user (by tapping on the dialog box) directs them to the Google Play Store if the Google Play Services is out of date or missing. Users are directed to the system settings if Google Play Services is disabled on the device.
This API attempts to make Google Play Services available on the device. If Google Play Services is already available on the device, the resultCallback may be triggered immediately.
If it is necessary to display a UI to complete this request, (for example, while directing the user to the Google Play Store) the Volt MX Main Activity must be used to display the UI.
Note: You must not invoke this API when the app is running in the background.
Syntax
voltmx.gms.makeGooglePlayServicesAvailable(resulCallback);
Input Parameters
resultCallback [Function]: A callback function that is executed when a user actions performed and the API call is complete. The resultCallback function is a JSON Object that has the following keys:
Parameter | Description |
---|---|
statusCode [Number] | A statusCode constant. This parameter can have the following values:voltmx.gms.RESOLUTION_DIALOG_ACCEPTED: The statusCode returned when the API is successfully executed, and the user navigates away from the error screen.voltmx.gms.RESOLUTION_DIALOG_FAILED: The statusCode returned when the invocation of the API fails due to invalid statusCodes.voltmx.gms.GMS_LIBRARY_MISSING: The statusCode returned when the GMS library is not linked to the app.voltmx.gms.API_NOT_SUPPORTED_IN_BACKGROUND: The statusCode returned when the app is running in the background, and the API is invoked. |
requestCode [Number] | The mapping of the responses that occur when the same result callback is used for multiple requests. |
resultCode [Number] | A value that is provided by the system based on the user action that is performed. |
statusMessage [String] | This message to be displayed if the invocation of the API fails. |
Example
function makeGMSAvailabile() {
//This check is to ensure googleplayservices is available and uptodate in device.
voltmx.gms.makeGooglePlayServicesAvailable(resulCallback)
}
function resulCallback(result) {
if (result.statusCode == voltmx.gms.MAKE_RESOLUTION_CALL_SUCCESS) {
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
// Cross checking if resolution is done
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
}
}
}
Return Value
None
Platform Availability
Android
voltmx.gms.raiseGooglePlayErrorResolutionIntent
The raiseGooglePlayErrorResolutionIntent API is used to address the statusCode that is returned from voltmx.gms.isGooglePlayServicesAvailable if it can be resolved by the user.
When a user taps the notification, they are directed to the Google Play Store if the Google Play Services is out of date or missing. Users are directed to the system settings if Google Play Services is disabled on the device
This API has been introduced to handle background tasks that cannot (or must not) display dialog boxes.
If it is necessary to display a UI to complete this request, (for example, while directing the user to the Google Play Store) the Volt MX Main Activity must be used to display the UI.
Developers can use this API to display a user-defined UI instead of the system dialogs that appears when the with voltmx.gms.showResolutionDialog API is triggered.
This api is not allowed in app background state.
Syntax
voltmx.gms.raiseGooglePlayErrorResolutionIntent(statusCode, requestCode, resultCallback);
Input Parameters
Parameter | Description |
---|---|
statusCode [Number] | The statusCode value that is returned by the voltmx.gms.isGooglePlayServicesAvailable API. |
requestCode [Number] | The mapping of the responses that occur when the same result callback is used for multiple requests. |
resultCallback [Function] | A callback function that is executed when a user actions performed and the API call is complete. The resultCallback function is a JSON Object that has the following keys: statusCode [Number]: A statusCode constant. This parameter can have the following values:voltmx.gms.RAISE_INTENT_SUCCESS: The statusCode returned when the API is successfully executed, and the user navigates away from the error screen.voltmx.gms.RAISE_INTENT_FAILED: The statusCode returned when the invocation of the API fails due to invalid statusCodes.voltmx.gms.GMS_LIBRARY_MISSING: The statusCode returned when the GMS library is not linked to the app.voltmx.gms.API_NOT_SUPPORTED_IN_BACKGROUND: The statusCode returned when the app is running in the background, and the API is invoked. requestCode [Number]: The value of the requestCode parameter that is passed during the invocation of the API. resultCode [Number]: A value that is provided by the system based on the user action that is performed. statusMessage [String]: This message to be displayed if the invocation of the API fails. |
Example
function checkGMSAvailabiltity() {
googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
if (voltmx.gms.isUserResolvableError(googlePlayServicesAvailabilityStatus)) {
var errorString = voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus);
// this errorString can be used in showing custom notification or dialogs.
// Assume u have code for custom dialog(i.e customPopup) with button named "Take Action".
This button has onclick callback event named "onActionClick".
customPopup.isVisible = true;
} else {
voltmx.print("google play services are not available in device");
}
}
}
function onActionClick() {
customPopup.isVisible = false;
voltmx.gms.raiseGooglePlayErrorResolutionIntent(googlePlayServicesAvailabilityStatus, requestCode, resultCallback)
}
function resulCallback(result) {
if (result.statusCode == voltmx.gms.voltmx.gms.RAISE_INTENT_SUCCESS) {
checkGMSAvailabiltity();
/ / / Cross checking
if resolution is done and proceed with api calls.
}
}
Return Value
None
Platform Availability
Android
voltmx.gms.showCustomErrorNotification
The showCustomErrorNotification API displays a customized notification to address the statusCode that is returned by the voltmx.gms.isGooglePlayServicesAvailable API, if it can be resolved by the user.
When a user taps the notification, they are directed to the Google Play Store if the Google Play Services is out of date or missing. Users are directed to the system settings if Google Play Services is disabled on the device
This API has been introduced to handle background tasks that cannot (or must not) display dialog boxes.
Syntax
voltmx.gms.showCustomErrorNotification(statusCode, channelId, notificationId, priority, title, text);
Input Parameters
Parameter | Description |
---|---|
statusCode [Number] | The statusCode value that is returned by the voltmx.gms.isGooglePlayServicesAvailable API. |
channelId [Number] | A unique ID that must be set for a channel. The channelId must be unique for each pakage. |
notificationId [Number] | A unique identifier for a notification in the app. |
priority [Number] | The priority for the notification. |
title [String] | The text to be displayed in the first line or heading of the notification. |
text [String] | The text to be displayed in the second line of the notification. |
Example
function checkGMSAvailabiltity() {
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
if (voltmx.gms.isUserResolvableError(googlePlayServicesAvailabilityStatus)) {
var errorString = voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus);
// this errorString can be used in showing custom notification or dialogs.
var isCallSuccesful = voltmx.gms.showCustomErrorNotification(googlePlayServicesAvailabilityStatus, channedId, notificationId, priority, errorString, text)
if (isCallSuccesful) {}
} else {
voltmx.print("google play services are not available in device");
}
}
}
Return Value
Boolean
The API returns true if the API is successfully invoked. The API returns false if the invocation of the API fails.
Platform Availability
Android
voltmx.gms.showErrorNotification
The showErrorNotification API displays a system notification to address the statusCode that is returned by the voltmx.gms.isGooglePlayServicesAvailable API, if it can be resolved by the user.
When a user taps the notification, they are directed to the Google Play Store if the Google Play Services is out of date or missing. Users are directed to the system settings if Google Play Services is disabled on the device
This API has been introduced to handle background tasks that cannot (or must not) display dialog boxes.
Syntax
voltmx.gms.showErrorNotification(statusCode);
Input Parameters
Parameter | Description |
---|---|
statusCode [Number] | The statusCode value that is returned by the voltmx.gms.isGooglePlayServicesAvailable API. |
Example
function checkGMSAvailabiltity() {
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
if (voltmx.gms.isUserResolvableError(googlePlayServicesAvailabilityStatus)) {
var isCallSuccesful = voltmx.gms.showErrorNotification(googlePlayServicesAvailabilityStatus);
if (isCallSuccesful) {}
} else {
voltmx.print("google play services are not available in device");
}
}
}
Return Value
Boolean
The API returns true if the API is successfully invoked. The API returns false if the invocation of the API fails.
Platform Availability
Android
voltmx.gms.showResolutionDialog
The showResolutionDialog API displays a dialog box to address any errors based on the value of the statusCode parameter.
The dialog box displays a localized message about the error, and upon confirmation from the user (by tapping on the dialog box) directs them to the Google Play Store if the Google Play Services is out of date or missing. Users are directed to the system settings if Google Play Services is disabled on the device.
Syntax
voltmx.gms.showResolutionDialog(statusCode, requestCode, resultCallback);
Input Parameters
Parameter | Description |
---|---|
statusCode [Number] | The statusCode value that is returned by the voltmx.gms.isGooglePlayServicesAvailable API. |
requestCode [Number] | The mapping of the responses that occur when the same result callback is used for multiple requests. |
resultCallback [Function] | A callback function that is executed when a user actions performed and the API call is complete. The resultCallback function is a JSON Object that has the following keys: statusCode [Number]: A statusCode constant. This parameter can have the following values:voltmx.gms.RESOLUTION_DIALOG_ACCEPTED: The statusCode returned when the API is successfully executed, and the user navigates away from the error screen.voltmx.gms.RESOLUTION_DIALOG_CANCELLED: The statusCode returned when the dialog box is dismissed by the user.voltmx.gms.RESOLUTION_DIALOG_FAILED: The statusCode returned when the invocation of the API fails due to invalid statusCodes.voltmx.gms.GMS_LIBRARY_MISSING: The statusCode returned when the GMS library is not linked to the app.voltmx.gms.API_NOT_SUPPORTED_IN_BACKGROUND: The statusCode returned when the app is running in the background, and the API is invoked. requestCode [Number]: The value of the requestCode parameter that is passed during the invocation of the API. resultCode [Number]: A value that is provided by the system based on the user action that is performed. |
Example
function checkGMSAvailabiltity() {
var googlePlayServicesAvailabilityStatus = voltmx.gms.isGooglePlayServicesAvailable();
//This check is to ensure googleplayservices is available and uptodate in device.
if (voltmx.gms.getStatusString(googlePlayServicesAvailabilityStatus) == "SUCCESS") {
// call any google api which needs above prior checkings..
} else {
if (voltmx.gms.isUserResolvableError(googlePlayServicesAvailabilityStatus)) {
var requestCode = 101;
voltmx.gms.showResolutionDialog(googlePlayServicesAvailabilityStatus, requestCode, resulCallback)
} else {
voltmx.print("google play services are not available in device");
}
}
}
function resulCallback() {
if (result.statusCode == voltmx.gms.voltmx.gms.RESOLUTION_DIALOG_ACCEPTED) {
checkGMSAvailabiltity();
/ / / Cross checking
if resolution is done and proceed with api calls.
}
}
Return Value
None
Platform Availability
Android