Como realizar una validación HMS
Tags: hmscore, huawei, huaweimobileservices, android
Published: 2021-05-04 14:38:57

![Alt text of image](https://miro.medium.com/max/700/1*hIimwt8fa1keYpzUJqMZMg.png)

Introducción
Los teléfonos Huawei no tienen servicios GMS, por lo que en la mayoría de los casos necesitamos usar flavors para mantener un proyecto para GMS y HMS, por lo que hay una manera fácil de validar el HMS disponible que explicaré a continuación:
Necesitamos integrar HMS como otro proyecto para que pueda crear un nuevo proyecto:
Crear una aplicación Cree una aplicación siguiendo las instrucciones de Creación de un proyecto de AppGallery Connect y Adición de una aplicación al proyecto.
Plataforma: Android
Dispositivo: teléfono móvil
Categoría de la App: aplicación o juego
Integración de HUAWEI AR Engine SDK
Antes del desarrollo, integre HUAWEI AR Engine SDK a través del repositorio de Maven en su entorno de desarrollo. Abra el archivo build.gradle en el directorio raíz de su proyecto de Android Studio.

```
buildscript {
    repositories {
        google()
        jcenter()
        // Configure the Maven repository address for the HMS Core SDK.
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.1.2"
// Add AppGallery Connect plug-in configurations.
        classpath 'com.huawei.agconnect:agcp:1.4.2.300'
        classpath 'com.google.gms:google-services:4.3.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}
```
Abra el archivo build.gradle en el directorio de la aplicación de su proyecto
```
plugins {
    id 'com.android.application'
}
android {
    compileSdkVersion 30
    buildToolsVersion "30.0.2"
defaultConfig {
        applicationId "com.spartdark.validatehmsservices"
        minSdkVersion 29
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    //hms
    implementation 'com.huawei.hms:hwid:5.1.0.301'
    //gms
    implementation platform('com.google.firebase:firebase-bom:26.3.0')
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-auth'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
apply plugin: 'com.huawei.agconnect'
apply plugin: 'com.google.gms.google-services'
```
Los métodos que utilizará para validar sus servicios son

```
public static boolean isHmsAvailable(Context context) {
    boolean isAvailable = false;
    if (null != context) {
        int result = HuaweiApiAvailability.getInstance().isHuaweiMobileServicesAvailable(context);
        isAvailable = (com.huawei.hms.api.ConnectionResult.SUCCESS == result);
    }
    Log.i(TAG, "isHmsAvailable: " + isAvailable);
    return isAvailable;
}
public static boolean isGmsAvailable(Context context) {
    boolean isAvailable = false;
    if (null != context) {
        int result = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context);
        isAvailable = (com.google.android.gms.common.ConnectionResult.SUCCESS == result);
    }
    Log.i(TAG, "isGmsAvailable: " + isAvailable);
    return isAvailable;
}
```
Conclusión
Es muy sencillo validar si un servicio está disponible en un teléfono.
[Github Repo](https://github.com/spartdark/validate-hms)

Explora más artículos en el [Huawei Developer Forum](https://bit.ly/2Kcm2Rh).
Conviértete en [Huawei Developer](https://bit.ly/2Rb8o3Z), es gratis.