DevStore首页 > DEV资源 > 服务评测下载 > 腾讯信鸽推送安卓版V2.37服务评测

腾讯信鸽推送安卓版V2.37服务评测

查看服务>>
DevStore编辑 刘艳丽 | 2015-03-09 11:00    浏览量(11744)    纠错    评论(2)    腾讯信鸽推送服务详情>>

服务评测作者

  • 22 能力值
  • 5 源码
  • 6 评测
  • 0 资料

评测目录

集成测试

评测环境

2G网络下:

测试对象

信鸽推送

测试版本

Xg_sdk_v2.37

测试环境

Win7+Eclipse

测试手机

LG手机

系统版本

Android4.0

手机网络

2G

测试时长

20分钟

测试时间

2015年1月21日09:30-2015年1月21日09:50

理论推送数量

25条

实际接受数量

25条


WiFi网络下:

测试对象

信鸽推送

测试版本

Xg_sdk_v2.37

测试环境

Win7+Eclipse

测试手机

LG手机

系统版本

Android4.0

手机网络

wifi

测试时长

20分钟

测试时间

2015年1月21日11:00-2015年1月21日11:20

理论推送数量

25条

实际接受数量

25条


基本参数:

收费

免费

支持平台

Android、ios

自定义push推送

支持

自定义网页地址推送

支持

打开应用指定页面

支持

应用数据统计

支持

稳定性

稳定

推送范围

指定标签,别名(单个和批量),全部用户

推送时间

即时,定时,重复

网站端发送通知栏提醒预览效果

支持

离线保存

支持

集成难易

一般

多包名推送

支持

自定义手机设备,测试预览

支持

集成过程

客户端集成

1、在信鸽官网注册成开发者http://xg.qq.com/xg

可以直接使用QQ号互联登录,这里是直接使用QQ账户来登录,注册也是注册QQ号,不需要审核直接就成为了开发者。

注册开发者

2、下载对应的Android SDK

地址:http://xg.qq.com/xg/help/ctr_help/download(已经是开发者,可立即体验使用,这里以安卓版本为例)。

Android  sdk

接入应用,信鸽提供了安卓和ios两种方式,这里选用安卓作为测试,这里填写的包名和项目中的包名要一直。如下图:

接入应用

申请成功后,创建应用和生成对应的key,这里的key是下面要在代码中使用到的:

key

申请成功如下图,在这里可以直接给手机客户端发送通知信息了。

申请成功

3、创建项目devstore

创建项目devstore

4、导入信鸽jar包

可以直接把信鸽提供的jar包作为外部文件引用,也可以直接复制到工程项目的lib下面,一般简单的就是直接复制到工程项目中,毕竟jar比较小才几十KB,对整体项目影响比较小。

导入信鸽jar包

5、代码调用

清单里注册application,配置application信息:

<application
        android:name="com.xg.com.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

初始化信鸽推送

public class MyApplication extends Application {
 
@Override
public void onCreate() {
super.onCreate();
initData();
}
 
private void initData() {
XGPushConfig.enableDebug(this, true);
}
//registerPush
 
private void start_regist() {

XGPushManager.registerPush(getApplicationContext(),
new XGIOperateCallback() {
@Override
public void onSuccess(Object data, int flag) {
Log.e("Success", "Success:" + data);
}
 
@Override
public void onFail(Object data, int errCode, String msg) {
Log.e("onFail", "onFail:" + " errCode:" + errCode
+ "msg:" + msg);
}
});
 
}

6、添加对应的权限和信鸽服务,这里要细心点,很容易写错包名

权限:

<uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.RESTART_PACKAGES" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission android:name="android.permission.GET_TASKS" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BATTERY_STATS" />

添加信鸽服务所需要的服务和注册推送类:

<activity
            android:name="com.tencent.android.tpush.XGPushActivity"
            android:exported="true"
            android:theme="@android:style/Theme.Translucent" >
            <intent-filter>
 
                <!-- 若使用AndroidStudio,请设置android:name="android.intent.action" -->
                <action android:name="" />
            </intent-filter>
        </activity>
 
        <receiver
            android:name="com.tencent.android.tpush.XGPushReceiver"
            android:process=":xg_service_v2" >
            <intent-filter android:priority="0x7fffffff" >
 
                <action android:name="com.tencent.android.tpush.action.SDK" />
                <action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" />
                <action android:name="android.intent.action.USER_PRESENT" />
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
 
                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
                <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
                <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
            </intent-filter>
            <intent-filter android:priority="0x7fffffff" >
                <action android:name="android.intent.action.MEDIA_UNMOUNTED" />
                <action android:name="android.intent.action.MEDIA_REMOVED" />
                <action android:name="android.intent.action.MEDIA_CHECKING" />
                <action android:name="android.intent.action.MEDIA_EJECT" />
 
                <data android:scheme="file" />
            </intent-filter>
        </receiver>
 
        <service
            android:name="com.tencent.android.tpush.service.XGPushService"
            android:exported="true"
            android:persistent="true"
            android:process=":xg_service_v2" />
        <service
            android:name="com.tencent.android.tpush.rpc.XGRemoteService"
            android:exported="true" >
            <intent-filter>
 
                <!-- 【必须】 请修改为当前APP名包.PUSH_ACTION,如demo的包名为:com.qq.xgdemo -->
                <action android:name="com.xg.com.PUSH_ACTION" />
            </intent-filter>
        </service>
 
        <!-- YOUR_PACKAGE_PATH.CustomPushReceiver需要改为自己的Receiver: -->
        <receiver android:name="com.xg.com.receiver.MessageReceiver" >
            <intent-filter>
                <action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" />
                <action android:name="com.tencent.android.tpush.action.FEEDBACK" />
            </intent-filter>
        </receiver>
 
        <meta-data
            android:name="XG_V2_ACCESS_ID"
            android:value="2100079301" />
        <meta-data
            android:name="XG_V2_ACCESS_KEY"
            android:value="AXD279R7K8WZ" />

主要功能

1、绑定账号/别名,设置成功后,后台服务返回别名,在信鸽日志中显示

测试

2、撤销绑定账号/别名,设置成功后,后台服务返回撤销别名,(必须是已经设置了的别名才能撤销),在信鸽日志中显示

绑定账号

3、设置标签,设置成功后,后台服务返回标签名,在信鸽日志中显示(如下图)

设置标签

4、撤销标签,设置成功后,后台服务返回,在信鸽日志中显示(如下图)

撤销标签

5、注册,注册成功后,返回注册成功信息(如下图)

注册成功

6、反注册,注册成功后客户端就不在接收服务器推送过来的push。(如下图)

反注册

7、清空日志(如下图)

清空日志

8、打开和清除通知都会信息反馈

信息反馈

打开信息反馈

功能特色

开启推送

1、指定推送类型

这里的推送对象就是手机客户端中要设置的账号/别名和标签。根据标签,别名和全部用户来区分推送对象。

指定推送类型

2、网站端设置push的时效性和重复性

定时

重复

3、离线保存和高级设置

高级设置功能包括:提醒方式,通知样式,时段性,多包推送

高级设置功能

4、推送统计

可以详细的查看推送总量,别名,标签,发送,和点击查看了数据量,基数数据量

推送统计

基础数据,可以查看一个月内的数据

查看数据

标签,查看手机客户端设置的标签

设置标签

5、自定义手机设备,测试预览(在应用配置中设置设备token,token详情请看代码输出的日志中)

修改测试设备

测试预览设备

这样就能把推送push,发送到指定测试的安卓手机设备上了。

6、推送列表

查看所有发出的消息(网页,服务端,消息命令)记录包括每条推送信息详情信息

推送通知

通知推送数据

7、分批次间发push

分批次间发

分批次间发

分批次间发

DEMO展示

设置别名,标签,撤销别名,撤销标签,注册,反注册功能代码

public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.set_alias:
if ("".equals(edit_set_alias.getText().toString())) {
Toast.makeText(getApplicationContext(), "绑定账号输入不为空!!",
Toast.LENGTH_LONG).show();
 
return;
}
 string="";
XGPushManager.registerPush(getApplicationContext(), "edit_set_alias.getText().toString()",
new XGIOperateCallback() {
@Override
public void onSuccess(Object data, int flag) {
string="绑定账号成功,设备token为:" + data;
Log.e("string", "string" + string);
}
 
@Override
public void onFail(Object data, int errCode, String msg) {
Log.e("TPush", "绑定账号失败,错误码:" + errCode + ",错误信息:" + msg);
string="绑定账号失败,错误码:" + errCode + ",错误信息:" + msg;
}
});

break;
case R.id.unset_alias:
if ("".equals(eidt_unset_alias.getText().toString())) {
Toast.makeText(getApplicationContext(), "解除绑定账号输入不为空!!",
Toast.LENGTH_LONG).show();
 
return;
}
XGPushManager.registerPush(getApplicationContext(), "*");
string="解除绑定账号成功!!";
break;
case R.id.subscribe_topic:
if ("".equals(edit_subscribe_topic.getText().toString())) {
Toast.makeText(getApplicationContext(), "标签输入不为空!!",
Toast.LENGTH_LONG).show();
 
return;
}
XGPushManager.setTag(getApplicationContext(),
edit_subscribe_topic.getText().toString());
 
break;
case R.id.unsubscribe_topic:
if ("".equals(eidt_unsubscribe_topic.getText().toString())) {
Toast.makeText(getApplicationContext(), "撤销标签输入不为空!!",
Toast.LENGTH_LONG).show();
 
return;
}
XGPushManager.deleteTag(getApplicationContext(),
eidt_unsubscribe_topic.getText().toString());
 
break;
case R.id.zhuce:
XGPushManager.registerPush(MainActivity.this);
 
break;
case R.id.starttime:
// 反注册,调用本接口后,APP将停止接收通知和消息
XGPushManager.unregisterPush(getApplicationContext());
Toast.makeText(getApplicationContext(), "反注册成功,APP将停止接收通知和消息",
Toast.LENGTH_LONG).show();
 
break;
case R.id.clean:
boo=false;
log.setText("");
break;
case R.id.clean_notifase:
XGPushManager.clearLocalNotifications(MainActivity.this);
break;
 
default:
break;
}
 
}

详情请查看MainActivity,里面有详细的注释。

测试日志

测试日志截图:

测试日志截图

遇到问题

1、在集成信鸽推送的时候,使用自己申请时候的key,你需求修改MainActivity中APP_ID和APP_KEY,还有清单中包名前缀改为你的项目包名(要和信鸽开发者网站上申请时保持一致)。

需修改信息

需修改信息

2、发送广播的时候,很容易发送错误,把action传递参数设置错误,要类中和服务中保持一致。

类中

类中

服务中发送广播时

服务中发送广播时

3、开发中不要看信鸽提供的demo,太繁琐,调理乱,多看提供的技术文档,分为快速开发和开发指南,看帮助比看demo快很多,http://developer.xg.qq.com/index.php/Android_SDK快速指南和http://developer.xg.qq.com/index.php/Android_SDK。

上手难易

上手难易:一般,仔细的查看信鸽提供的开发文档,提供的代码写的太繁琐了,仔细阅读文档基本可以成功集成和推送消息了。

开发文档

信鸽集成好了开发文档和演示demo文档http://developer.xg.qq.com/index.php/Android_SDK和http://xg.qq.com/xg/help/ctr_help/download

此服务评测版权归DevStore所有,禁止转载,申请升级为 特约评测员 才可进行测评立即申请

声明:DevStore评测内容都是基于专业评测人员/开发者通过真实的测试之后得出的数据,服务版本实时都在更新,所以评测并不一定是此服务的最新版本,但我们会秉承公正专业精准的态度,对开发者负责,同时欢迎大家监督和建议,如对评测内容有异议,请提交纠错,由专业的评测团队再次评测,我们会尽最大努力为大家提供更贴心的服务。

DevStore_全球首家第三方开发者服务商店,最精准的服务对比、最专业的服务评测、最及时的行业动态,为开发者挑选服务提供最全面的参考和专业分析,加入DevStore,从此告别熬夜加班,你也可以这么帅!搜索微信号:DevStore

评论(2)
liaolifang

liaolifang 2015-06-04 17:20:14

我用两台手机测试,发现有一台手机接收不到消息,为什么只有一台手机设备收到信鸽推送的通知?
回复(0) 赞(1) 赞(2)
风月星子

风月星子 2015-03-21 14:23:59

不觉明利啊。。学不来
回复(0) 赞(0) 赞(1)