Go to file
2016-08-27 12:46:12 +02:00
extern Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
gradle/wrapper Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services-base Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services-cast Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services-gcm Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services-iid Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services-location Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services-tasks Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
play-services-wearable Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
.gitignore Add Gradle Wrapper 2015-10-02 03:38:07 +02:00
.gitmodules Update api 2015-03-14 22:21:35 +01:00
.travis.yml Fix travis 2016-08-07 18:23:01 +02:00
build.gradle Update Gradle and Sublib 2016-08-27 12:46:12 +02:00
gradlew Add Gradle Wrapper 2015-10-02 03:38:07 +02:00
LICENSE Big restructure and add GCM and IID client 2016-08-07 18:13:17 +02:00
play-services-api Update api 2015-03-14 22:21:35 +01:00
play-services-basement Update lib for API changes, add support for wearable listening and sending messages 2016-08-14 10:29:03 +02:00
play-services-cast-api Big restructure and add GCM and IID client 2016-08-07 18:13:17 +02:00
play-services-iid-api Big restructure and add GCM and IID client 2016-08-07 18:13:17 +02:00
play-services-location-api Big restructure and add GCM and IID client 2016-08-07 18:13:17 +02:00
play-services-wearable-api Big restructure and add GCM and IID client 2016-08-07 18:13:17 +02:00
README.md Update DashClock example 2015-03-13 03:08:00 +01:00
safe-parcel Update api 2015-03-14 22:21:35 +01:00
settings.gradle Update lib for API changes, add support for wearable listening and sending messages 2016-08-14 10:29:03 +02:00

GmsLib

This library is a compatibility implementation of the often used play-services library.

It will try to use the Play Services when installed on the target device. If this is not possible, a basic fallback implementation might be used.

WIP

This is still work in progress, and most applications will not build. However feel free to try it out and create issues for missing method calls (please include an application to test it).

Example: DashClock

DashClock is an open source clock widget with enhanced features. However it uses play services as location backend and thus requires proprietary libraries to compile it.

However, it is possible to build DashClock using GmsLib, supporting all it's location features, with or without play services installed. To do this, download and build GmsLib plus its submodules and install it to the local gradle repository:

$ git clone https://github.com/microg/android_external_GmsLib.git GmsLib
$ cd GmsLib
$ git submodule update --init --recursive
$ gradle install

Then update the main/build.gradle to point to non-google gms in local maven:

 repositories {
+    maven {   url "${System.env.HOME}/.m2/repository" } // This can be mavenLocal() since Gradle 2.0
     mavenCentral()
     flatDir {
         dirs '../local_aars'
     }
 }
 
 dependencies {
     compile 'com.android.support:support-v13:22.0.0'
-    compile 'com.google.android.gms:play-services:4.0.30'
+    compile 'org.microg.gms:play-services:1.0-SNAPSHOT'
     //compile 'com.mobeta.android.dslv:drag-sort-listview:0.6.1-SNAPSHOT-AAR'
     compile 'com.mobeta.android.dslv:drag-sort-listview:0.6.1-SNAPSHOT-AAR@aar'
     compile project(':api')
 }

Afterwards you can compile dashclock the usual way:

$ gradle :main:assembleDebug