OPFPush, Android推送通知客户端( GCM,ADM,诺基亚推送)

分享于 

8分钟阅读

GitHub

  繁體 雙語
Under development
  • 源代码名称:OPFPush
  • 源代码网址:http://www.github.com/onepf/OPFPush
  • OPFPush源代码文档
  • OPFPush源代码下载
  • Git URL:
    git://www.github.com/onepf/OPFPush.git
    Git Clone代码到本地:
    git clone http://www.github.com/onepf/OPFPush
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/onepf/OPFPush
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    OPFPush

    Android Arsenal

    OPFPush是一个开源库,它为开发者提供了一种将android推送通知集成到他们的应用程序中的简单方法。

    当前OPFPush支持以下推送提供程序: Google云消息传递诺基亚通知推送插件,Amazon设备消息传递插件,并提供了使用系统推送提供程序的特定设备的可能性。

    :如何使用

    添加依赖项

    主要依赖项是 opfmaps 模块和 OPFUtils命令行库:

    compile 'org.onepf:opfpush:0.3.1@aar'compile 'org.onepf:opfutils:0.1.25'

    那么你必须至少添加一个映射提供者依赖项。

    GCM提供程序插件:

    compile 'org.onepf:opfpush-gcm:0.3.1@aar'compile 'com.google.android.gms:play-services:7.8.0'

    ADM推送提供程序插件:

    compile 'org.onepf:opfpush-adm:0.3.1@aar'provided 'com.amazon:amazon-device-messaging:1.0.1'

    Push提供程序插件:

    compile 'org.onepf:opfpush-nokia:0.3.1@aar'compile 'com.nokia:push:1.0'

    注意:如果你使用 ADMProvider 或者/和 NokiaPushProvider,则必须添加以下主机,其中主机和 nokia-push.jar 为:

    allprojects {
     repositories {
     ...
     // third-party dependencies maven { url 'https://raw.githubusercontent.com/onepf/OPF-mvn-repo/master/' }
     }
    }

    更新 AndroidManfest.xml

    添加每个使用的推送提供程序所需的权限和接收器:

    <!--gcm permissions--><uses-permissionandroid:name="${applicationId}.permission.C2D_MESSAGE"/>
    <permissionandroid:name="${applicationId}.permission.C2D_MESSAGE"android:protectionLevel="signature"/><!--adm permissions--><permissionandroid:name="${applicationId}.permission.RECEIVE_ADM_MESSAGE"/>
    <uses-permissionandroid:name="${applicationId}.permission.RECEIVE_ADM_MESSAGE"android:protectionLevel="signature"/><!--nokia--><!--The same as for gcm--><application>
     <!--gcm receiver--> <receiverandroid:name="com.google.android.gms.gcm.GcmReceiver"android:exported="true"android:permission="com.google.android.c2dm.permission.SEND">
     <intent-filter>
     <actionandroid:name="com.google.android.c2dm.intent.REGISTRATION"/>
     <actionandroid:name="com.google.android.c2dm.intent.RECEIVE"/>
     <categoryandroid:name="${applicationId}"/>
     </intent-filter>
     </receiver>
     <!--adm receiver--> <receiverandroid:name="org.onepf.opfpush.adm.ADMReceiver"android:permission="com.amazon.device.messaging.permission.SEND">
     <intent-filter>
     <actionandroid:name="com.amazon.device.messaging.intent.REGISTRATION"/>
     <actionandroid:name="com.amazon.device.messaging.intent.RECEIVE"/>
     <categoryandroid:name="${applicationId}"/>
     </intent-filter>
     </receiver>
     <!--nokia receiver--> <receiverandroid:name="org.onepf.opfpush.nokia.NokiaNotificationsReceiver"android:permission="com.nokia.pushnotifications.permission.SEND">
     <intent-filter>
     <actionandroid:name="com.nokia.pushnotifications.intent.RECEIVE"/>
     <actionandroid:name="com.nokia.pushnotifications.intent.REGISTRATION"/>
     <categoryandroid:name="${applicationId}"/>
     </intent-filter>
     </receiver>
    </application>

    初始化

    要设置 OPFPush,请将下面的代码段添加到 Application.onCreate() 方法中:

    publicclassMyApplicationextendsApplication {
     @OverridepublicvoidonCreate() {
     super.onCreate();
     OPFLog.setEnabled(BuildConfig.DEBUG, true); //Optional. It enables debug logs of the OPFMaps library in the debug build of your apk.finalConfiguration configuration =newConfiguration.Builder()
    . addProviders(newGCMProvider(this, GCM_SENDER_ID), newADMProvider(this), newNokiaNotificationsProvider(this, NOKIA_SENDER_ID)) //Add all providers. The priority of the providers corresponds to the order in which they were added.. setSelectSystemPreferred(true) //If you set true, the system push provider will get the highest priority. Default value is false.. setEventListener(newPushEventListener(this)) //An implementation of EventListener interface.. build();
     OPFPush.init(this, configuration); //Init OPFPush using the created Configuration object:OPFPush.getHelper().register(); //Start registration. }
    }

    你将在 EventListener.onRegistered() 回调中获得注册 id。 注册后,你将开始接收推送消息到 EventListener.onMessage() 回调。

    示例

    看看我们的示例应用程序应用程序中的OPFPush库的用法。

    ##More 信息

    Google云消息传递的简单迭代

    如果你想在应用程序中使用 GCM,但不知道如何。 参见最简单的方式:使用库实现 GCM。

    使用 OPFPushReceiver

    你可以使用 BroadcastReceiver 而不是 EventListener 接收推送事件。 请参见下面的部分

    使用 jar 依赖项而不是 AARs

    你还可以使用 jar 依赖项。 请参见下面的部分

    通知负载支持

    库中添加了 GCM通知负载支持插件。 我们还为所有支持的推送提供程序实现了类似的机制。 请参见下面的部分

    创建自定义推送提供程序

    要创建自定义推送提供程序,请参见下面的部分

    对最流行的推送服务的比较

    标准 GCM ADM通知 OPFPush
    接收消息++++
    多个发件人+-++
    通知负载支持+--+
    异步注册和注销-+++
    失败时重试 register-+++
    重新启动后失败后重试 register---+
    失败时重试注销---+
    检查在引导时有效---+
    更新应用程序版本后重试 register---+
    更改 ANDROID_ID 后重试 register。---+

    许可证

    
    Copyright 2012-2015 One Platform Foundation
    
    
    
    Licensed under the Apache License, Version 2.0 (the"License");
    
    
    you may not use this file except in compliance with the License.
    
    
    You may obtain a copy of the License at
    
    
    
     http://www.apache.org/licenses/LICENSE-2.0
    
    
    
    Unless required by applicable law or agreed to in writing, software
    
    
    distributed under the License is distributed on an"AS IS" BASIS,
    
    
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    
    
    See the License for the specific language governing permissions and
    
    
    limitations under the License.
    
    
    
    

    相关文章