File tree Expand file tree Collapse file tree 2 files changed +21
-3
lines changed
testing/test_framework/src
android/java/com/google/firebase/example Expand file tree Collapse file tree 2 files changed +21
-3
lines changed Original file line number Diff line number Diff line change 16
16
17
17
import android .content .Context ;
18
18
import android .os .Build ;
19
- import com .google .android .gms .common .GoogleApiAvailability ;
19
+ import java .lang .Class ;
20
+ import java .lang .reflect .Method ;
20
21
21
22
/**
22
23
* A simple class with test helper methods.
@@ -31,6 +32,22 @@ public static boolean isRunningOnEmulator() {
31
32
|| Build .DEVICE .contains ("vbox86p" ) || Build .HARDWARE .contains ("vbox86" );
32
33
}
33
34
public static int getGooglePlayServicesVersion (Context context ) {
34
- return GoogleApiAvailability .getInstance ().getApkVersion (context );
35
+ // Use reflection to invoke GoogleApiAvailability.getInstance().getApkVersion(context).
36
+ // This avoids needing Google Play services to be present (and returns 0 if it's not)..
37
+
38
+ // GoogleApiAvailability
39
+ Class <?> googleApiAvailabilityClass = Class .forName ("com.google.android.gms.common.GoogleApiAvailability" );
40
+ if (googleApiAvailabilityClass == null ) {
41
+ return 0 ;
42
+ }
43
+ // .getInstance()
44
+ Method getInstanceMethod = googleApiAvailabilityClass .getDeclaredMethod ("getInstance" );
45
+ Object instance = getInstanceMethod .invoke (null );
46
+
47
+ // .getApkVersion(context)
48
+ Method getApkVersionMethod = googleApiAvailabilityClass .getMethod ("getApkVersion" , new Class []{context .class });
49
+ Object apkVersionObject = getInstanceMethod .invoke (instance , context );
50
+
51
+ int apkVersion = apkVersionObject .intValue ;
35
52
}
36
53
}
Original file line number Diff line number Diff line change @@ -354,7 +354,8 @@ class FirebaseTest : public testing::Test {
354
354
// on a real device (or on desktop).
355
355
static bool IsRunningOnEmulator ();
356
356
357
- // Return Google Play services version on Android, 0 elsewhere.
357
+ // If on Android and Google Play services is available, returns the
358
+ // Google Play services version. Otherwise, returns 0.
358
359
static int GetGooglePlayServicesVersion ();
359
360
360
361
// Returns true if the future completed as expected, fails the test and
You can’t perform that action at this time.
0 commit comments