安卓消息推送
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android Push Notification Server
SDK V 2.0.5
目录
1、功能介绍 (3)
2、特点介绍 (3)
3、集成步骤 (3)
4、启动服务 (4)
5、发送消息 (4)
6、接收消息 (5)
7、小结 (6)
1、功能介绍
Android Push Notification Server 简称APNS
安卓的消息推送机制,将消息通知栏放在屏幕顶部,并且允许用户在合适的时候通过下拉查看所有通知。
2、特点介绍
2.1、本应用服务免费
2.2、易集成
2.3、没有C2DM的限制(如android 2.2+ , 绑定gmail 等)
2.4、云服务,不用自己架设服务器
2.5、用户track
2.6、简单高效,省电
3、集成步骤
3.1、登陆,并注册一个自己的账号(这步是必须的,因为url中要用到你注册获得的app key)
3.2、在download中,下载sdk ,放到工程中的lib文件夹中(没有的话自己建个),在该jar包下,通过点击鼠标右键添加到路径。
3.3、在你的工程下,需要配置AndroidManifest.xml文件。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<receiver android:name=".MessageReceiver">
<intent-filter>
<!-- instead of your package name -->
<action android:name="com.tim.push" />
</intent-filter>
</receiver>
<receiver android:name=".NotificationClickReceiver">
<intent-filter>
<!-- "com.tim.push" should instead of your package name,
and keep the string ".notification_click" there -->
<action android:name="com.tim.push.notification_click" />
</intent-filter>
</receiver>
<service android:label="Android Push Service"
android:name="com.aragoncg.apps.xmpp.service.AndroidPushService" />
<receiver
android:name="com.aragoncg.apps.xmpp.service.ConnectionChangedReceiver"
android:label="NetworkConnection">
<intent-filter>
<action android:name=".conn.CONNECTIVITY_CHANGE"/> </intent-filter>
</receiver>
<!-- instead of your application key -->
<meta-data android:name="app_key"
android:value="1b7070329243338d98b9a236ea3383aa" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 4、启动服务
在自己的某一个Activity中启动push service
AndroidPush.start(this);
5、发送消息
通过发送http请求
/api/send/?secret=xxxx&app_key=xxxx&client_ids=xxxxx1,xxxx x2&msg=hello,world
注:将url中的xxxx要替换掉
这个url中有几个参数,我要说明下:
5.1、Secret和app_key是你注册登录后可获得的,在Developer面,如图1:
图 1
这个是我的哦,大家要自己注册哦
5.2、client_ids
是设备id,通过 AndroidPush.getClientId(context);方法可以获得
client_ids这个参数是可选添的,如果是空的话,所有应用你的程序的用户都会收到消息;client_ids也可以带多个id,id之间用“,”隔开,这样就可发送到多台设备之中
6、接收消息
6.1、
接收push过来的消息是在一个MessageReceiver 中,通过这个receiver您就可以在后台处理一些您自己的工作。
public class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String msg = "";
if (intent.getExtras().containsKey(
AndroidPush.MESSAGE_CONTENT)){
msg = intent.getStringExtra(
AndroidPush.MESSAGE_CONTENT);
}
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
}
}
6.2、
另外NotificationClickReceiver.java这个类就与你的动作有关联了,如果您点击了状态栏下拉下来的消息,就会触发这个类,您可以做您喜欢的动作了
public class NotificationClickReceiver extends BroadcastReceiver {
private static final String LOG_TAG = "NotificationClickReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Intent it = new Intent(context, MainActivity.class);
it.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK);
if (intent.getExtras() != null) {
it.putExtras(intent.getExtras());
if (intent.getExtras().containsKey(AndroidPush.MESSAGE_CONTENT)) {
Log.d(LOG_TAG, "notification clicked -- message: "
+ intent.getStringExtra(AndroidPush.MESSAGE_CONTENT));
}
}
context.startActivity(it);
}
}
7、小结
经过上面几个步骤的操作您就可以使用push notification server了。
如果有什么问题请联系我们:support@。