GithubHelp home page GithubHelp logo

pombredanne / easygcm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from inloop/easygcm

0.0 1.0 0.0 219 KB

Android Library for easy GCM integration in few lines of code.

License: Apache License 2.0

Java 90.98% Groovy 9.02%

easygcm's Introduction

easygcm

Android Library for easy GCM integration. Including push notifications sender task for Gradle.

This library is based on sample client code provided by Android documentation at http://developer.android.com/google/gcm/client.html and https://code.google.com/p/gcm/

It includes all the common code from the sample including AndroidManifest.xml that is automatically merged into your application. Also content of sample's DemoActivity is included in this library extracted in GcmHelper class. This library further improves original sample client in several ways, see changelog.

How to use:

  • The project uses Google Play Services, so make sure you have:

  • classpath 'com.google.gms:google-services:1.5.0' in your project root gradle file

  • apply plugin: 'com.google.gms.google-services' in your module gradle file

  • compile 'com.google.android.gms:play-services-gcm:8.3.0' in your module gradle file dependencies

  • Add this to your build.gradle: compile 'eu.inloop:easygcm:1.6.2@aar'

  • In your Application implement GcmListener interface with two methods:

    • onMessage()
    • sendRegistrationIdToBackend()

Note: Both methods are executed asynchronously in background thread and the wake lock is held until the method is executed. Don't start other asynchronous tasks here unless needed - the wake lock would be released and the tasks would not be guaranteed to run. Put the blocking code right into these methods.

  • In your MainActivity onCreate(), call EasyGcm.init(this);

  • Define GCM Sender ID adding google-service.json configuration and setting up Google Services Gradle plugin as described in Implementing GCM Client on Android

  • Alternatively, instead of being implemented by the Application class, you can have your own instance of GcmListener and set it in the application with EasyGcm.setGcmListener(GcmListener listener)

If you need GET_ACCOUNTS permission, add this to you application's manifest:

<uses-permission
    android:name="android.permission.GET_ACCOUNTS"
    tools:remove="android:maxSdkVersion"/>

If you want to access the registrationId after the registration has finished, you can use EasyGcm.isRegistered(Context context), EasyGcm.getRegistrationId(Context context) or for convenience EasyGcm.resendRegistrationIdToBackend(Context context) (returns null if registrationId does not exist).

That's it. You might also want to use Gradle task for sending push notifications to your device:

  • add Gradle dependency to buildscript section: classpath 'eu.inloop:easygcm-tasks:1.3.0'
  • add following code to your build.gradle and edit push notification data, apiKey and registration ID
task push(type: eu.inloop.easygcm.PushTask) {
    data = '{"myMessage":"Hello World"}'
    apiKey = 'AIzaSyDt0uzm74Un5qsoEyQcvE-5lhDB3n3m9XX' // Server API Key
    registrationIds = [
            'mt4gNCjtlRs:APA91bHiu_7X_CzA_IbSk9FiR_wk9b6sIvAuR6t-zoE5ujSx0D5Obql5dZiQ9DrEK8YsJm4lBr2nNLKWGRKSr2GZJSgdm_jxOWO4nBCE2QYNzJTS2bCTPRgrIH7cra0t1BEU7g2dwnYY'
    ]
}
  • call ./gradlew push

How to build locally:

So far, it is not possible to use project dependencies in Gradle's buildscript section (needed for our plugin). That means you have to build the library first (and install in local Maven repo) and just then build the sample application.

./gradlew clean uploadArchives
./gradlew -p easygcm-sample clean assembleDebug

easygcm's People

Contributors

coplas avatar davidvavra avatar epholl avatar martinadamek avatar peterbartos avatar rainer-lang avatar richard-mihalovic avatar soyangel avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.