Android + Firebase:如何确保拥有最低限度的Google Play服务

时间:2017-06-08 14:09:58

标签: android firebase

我遇到了这个问题:我在三星平板电脑上运行带有firebase的应用,Android 4.3 Google Play Services version 7.8.99(应该至少为9)。因此,当我尝试使用FireBase登录时,它会给我一个“无法连接到Google Play服务”。

我的问题是:有没有办法确保应用程序可以在具有最低版本SDK的所有设备上运行,在我的情况下,最低兼容性是4.3。

我使用助手在应用中安装了Firebase,然后检查manual install guide后是否一切都在那里。我也尝试了this post中描述的内容,this post。到目前为止,没有解决我的问题。

我的root级build.gradle:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我的App Level build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "xx.xx.xxxxxxxx"
        minSdkVersion 18
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })

    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.roughike:bottom-bar:2.3.1'
    compile 'com.android.support:support-v4:24.2.1'
    compile 'com.dlazaro66.qrcodereaderview:qrcodereaderview:2.0.2'
    compile 'com.github.clans:fab:1.6.4'
    testCompile 'junit:junit:4.12'
    compile 'com.google.firebase:firebase-core:10.2.6'
    compile 'com.google.firebase:firebase-auth:10.2.6'
    compile 'com.google.firebase:firebase-database:10.2.6'
    compile 'com.google.firebase:firebase-crash:10.2.6'
    compile 'com.estimote:sdk:1.0.3:release@aar'

}

apply plugin: 'com.google.gms.google-services'

我能做些什么来确保我可以在每台设备上使用firebase吗?

1 个答案:

答案 0 :(得分:3)

您需要检查Google Play服务是否可用,并且该检查的连接结果会告诉您需要执行的操作

switch (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this)){
        case ConnectionResult.SERVICE_MISSING:
            GoogleApiAvailability.getInstance().getErrorDialog(this,ConnectionResult.SERVICE_MISSING,0).show();
            break;
        case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
            GoogleApiAvailability.getInstance().getErrorDialog(this,ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED,0).show();
            break;
        case ConnectionResult.SERVICE_DISABLED:
            GoogleApiAvailability.getInstance().getErrorDialog(this,ConnectionResult.SERVICE_DISABLED,0).show();
            break;
    }

最新的Google Play服务与4.1及更高版本的所有设备兼容。

没有办法将GPS绑定到特定的Android版本,您必须确保您使用的版本与您需要定位的最小Android API版本兼容。