安卓ios 信鸽推送送发起1次会收到2条推送为什么?

Android个推推送的几点心得
在APP开发中,目前常用的推送方式主要有,极光推送、个推推送、信鸽推送,先针对目前本人使用过的这三种推送方式,写一点体会。该三种推送方式原理想同,都是采用服务器和手机长连接的方式,需要推送消息时服务器发送广播,手机过滤接收。
1、极光推送,使用的人数较多,优点:开发简单,推送成功率较高,缺点:及时度一般,在下午6时左右推送量大,会出现明显的推送不及时现象。
2、信鸽推送,使用的人数较少,腾讯旗下的产品,因为新鲜,所有使用量低,网上参考文档少,很多问题在官网也找不到解决方案,但是,大牌产品,有待观望。开发文档和极光推送文档相似度高。推送成功率,本人未大量测试。使用简单,导入jar包,完成初始化,即可收到推送通知。
3、个推推送,今天要介绍的主角,选择个推推送的原因主要是:推送成功虑95%以上,分免费版和收费版,目前应用的为免费版,但是,咨询过个推推送的工作人员,收费版不会提高推送成功虑和及时性,但是,增加了一些功能,详情可以询问官方客服。对比极光推送,在个推推送在下午6时左右也会出现推送延迟的现象,在某些型号手机上表现明显,但是,不是所有的手机都是这样。
个推推送已经使用了4个月,现对个推推送写一点心得:个推推送根据官方文档可以实现其基本推送功能。在使用中遇到的几点问题。
首先,个推推送,不点击通知栏程序无法得到通知内容,如若需要实现,接收到通知就播报出通知内容,则需要完全采用透传消息的方式。
然后,比较极光推送和信鸽推送来说,个推推送得到CID值相对教晚,极光推送、信鸽推送在完成第一步初始化后,即可取得TOKEN值(个推推送称为CID),但是,个推推送要等服务器给客户端返回才可以取得。如果对推送即使性要求过高的话,还需要手动设施心跳时间,文档中并未给出此条,目的是当客户端与服务器断开长连接后,更快的去主动连接服务器,但是,较频繁的去连接后台比较消耗资源,对及时性要求不高的APP可以不设置,据官方提供的数据,像打车软件等需要推送及时性高的应用设置时间为15S,此举相当耗电,但是,并不消耗很多流量。
最后,亲测酷派手机,联想手机的部分型号手机常会出现长连接断开就长时间连接不上,收不到推送的情况,具体原因未知。
以上为本人的体会,如有错误,还望指正~
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。您需要登录后才可以操作 |
TA的每日心情开心 13:21签到天数: 32 天连续签到: 1 天[LV.5]常住居民I
关于信鸽推送(后台推送成功,但是APP没有收到推送消息)
本帖最后由 gaole 于
17:51 编辑
我在服务端引入了信鸽推送jar包,然后在登录的时候进行一次推送测试,后台调用信鸽API返回标识推送成功,但是我的APP在线打包之后总是收不到推送消息?求指导,求解释
TA的每日心情开心 13:21签到天数: 32 天连续签到: 1 天[LV.5]常住居民I
新手上路,请多关照!
该用户从未签到
根据之前的经验,有可能是:
1.代码混淆出问题,没过保留信鸽的包:com.tencent.*
2.so添加不完成,需要项目中每个存在架构平台下添加各自so
TA的每日心情开心 13:21签到天数: 32 天连续签到: 1 天[LV.5]常住居民I
根据之前的经验,有可能是:
1.代码混淆出问题,没过保留信鸽的包:com.tencent.*
2.so添加不完成,需要项 ...
“没过保留信鸽的包”这句话要表达的是什么意思?
TA的每日心情开心 11:20签到天数: 8 天连续签到: 1 天[LV.3]偶尔看看II
兄弟,现在搞定了么,我觉得我的也不行,懵了
TA的每日心情开心 13:21签到天数: 32 天连续签到: 1 天[LV.5]常住居民I
兄弟,现在搞定了么,我觉得我的也不行,懵了
我已经放弃信鸽改用极光推送了,极光推送没有问题,信鸽我怀疑是他们的服务的问题,上次他们的技术人员帮我看了,我的推送消息到了他们的信鸽推送服务缓存里,但是我的终端一直收不到,他们说我的应用和信鸽推送服务断开了,重新连上就应该能收到了,但是我根本没有手动断开任何服务什么的,况且我要是没有连到他们的服务,怎么可能把推送消息发到服务器上呢?所以我感觉应该是他们的推送服务的问题,我没再纠结那个问题,看到好多人用极光推送,我试了一下,还是极光给力,秒到
TA的每日心情开心 11:20签到天数: 8 天连续签到: 1 天[LV.3]偶尔看看II
我已经放弃信鸽改用极光推送了,极光推送没有问题,信鸽我怀疑是他们的服务的问题,上次他们的技术人员帮 ...
我也改用了极光,可以推送,但没法根据推送跳转到指定页面,您帮我看看这个帖子,,谢谢!
AppCan官方微信16被浏览6,253分享邀请回答1添加评论分享收藏感谢收起0添加评论分享收藏感谢收起发送私信成功
DevStore用户登录
还没有DevStore帐号?
快捷登录:
您暂时无法上传评测 只有才可上传哦~
您已申请了
第一步审核通过后才可上传评测哦~
您目前的活力值不够下载该资源哦~~
怎么样快速获得活力值?
下载此资源将扣除活力值-20
(只在首次下载扣除活力值,之后可以免费下载)
满足所有需求,助您轻松工作
腾讯信鸽推送安卓版服务评测
DevStore编辑 刘艳丽 |
11:06 && 浏览量(21858) &&
测试Demo&1:
&public&class&Demo&{
&&&&String&secret_key="d156b5ccd47ece068e4f9efb";
&&&&SimpleDateFormat&df&=&new&SimpleDateFormat("yyyy-MM-dd&HH:mm:ss");//设置日期格式&&&
&&&&private&Message&message1;
&&&&private&Message&message2;
&&&&public&static&void&main(String[]&args)&{
&&&&&&&JSONObject&
&&&&&&&Demo&t&=&new&Demo();
&&&&&&&for(int&i=0;i&10;i++)
&&&&&&&&&&&ret&=&t.demoPushAllDevice(i);
&&&&&&&&&&&System.out.println(ret);
&&&&&&&&&&&ret&=&t.demoPushTags(i);
&&&&&&&&&&&System.out.println(ret);
&&&&//下发所有设备
&&&&protected&JSONObject&demoPushAllDevice(int&i)
&&&&&&&XingeApp&xinge&=&new&XingeApp(,&secret_key);
&&&&&&&String&title="Server&Push&给所有设备发送通知";
&&&&&&&String&content=i+":Server&Push&"+df.format(new&Date());
&&&&&&&message1.setTitle(title);
&&&&&&&message1.setContent(content);
&&&&&&&JSONObject&ret&=&xinge.pushAllDevice(XingeApp.DEVICE_ALL,&message1);
&&&&&&&System.out.println("给所有设备发送通知&title:"+title+",Content:"+content+",发送时间:"+&df.format(new&Date()));//&new&Date()为获取当前系统时间
&&&&&&&return&(ret);
&&&&//下发标签选中设备
&&&&protected&JSONObject&demoPushTags(int&i)
&&&&&&&XingeApp&xinge&=&new&XingeApp(,&secret_key);
&&&&&&&List&String&&tagList&=&new&ArrayList&String&();
&&&&&&&tagList.add("qq");
&&&&&&&String&title="Server&Push&qq标签&推送";
&&&&&&&String&content=i+":Server&Push&"+df.format(new&Date());
&&&&&&&message1.setTitle(title);
&&&&&&&message1.setContent(content);&&&&&&
&&&&&&&JSONObject&ret&=&xinge.pushTags(XingeApp.DEVICE_ANDROID,&tagList,&"OR",&message1);
&&&&&&&System.out.println("给标签选中设备发送通知&title:"+title+",Content:"+content+",发送时间:"+&df.format(new&Date()));//&new&Date()为获取当前系统时间
&&&&&&&return&(ret);
&&&&//查询消息推送状态
&&&&protected&JSONObject&demoQueryPushStatus()
&&&&&&&XingeApp&xinge&=&new&XingeApp(,&secret_key);
&&&&&&&List&String&&pushIdList&=&new&ArrayList&String&();
&&&&&&&pushIdList.add("390");
&&&&&&&pushIdList.add("389");
&&&&&&&JSONObject&ret&=&xinge.queryPushStatus(pushIdList);
&&&&&&&return&(ret);
&&&&public&Demo()
&&&&&&&message1&=&new&Message();
&&&&&&&message1.setType(Message.TYPE_NOTIFICATION);
&&&&&&&Style&style&=&new&Style(1);
&&&&&&&style&=&new&Style(3,1,0,1,0);
&&&&&&&ClickAction&action&=&new&ClickAction();
&&&&&&&action.setActionType(ClickAction.TYPE_URL);
&&&&&&&action.setUrl("http://xg.qq.com");
&&&&&&&Map&String,&Object&&custom&=&new&HashMap&String,&Object&();
&&&&&&&custom.put("key1",&"value1");
&&&&&&&custom.put("key2",&2);
&&&&&&&message1.setTitle("title");
&&&&&&&message1.setContent("大小");
&&&&&&&message1.setStyle(style);
&&&&&&&message1.setAction(action);
&&&&&&&message1.setCustom(custom);
&&&&&&&TimeInterval&acceptTime1&=&new&TimeInterval(0,0,23,59);
&&&&&&&message1.addAcceptTime(acceptTime1);
&&&&&&&message2&=&new&Message();
&&&&&&&message2.setType(Message.TYPE_NOTIFICATION);
&&&&&&&message2.setTitle("title");
&&&&&&&message2.setContent("通知点击执行Intent测试");
&&&&&&&style&=&new&Style(1);
&&&&&&&action.setActionType(ClickAction.TYPE_INTENT);
&&&&action.setIntent("intent:10086#Ischeme=action=android.intent.action.DIAL;S.key=end");
&&&&&&&message2.setStyle(style);
&&&&&&&message2.setAction(action);
测试Demo&2:
&&?xml&version="1.0"&encoding="utf-8"?&
&manifest&xmlns:android="http://schemas.android.com/apk/res/android"
&&&&package="com.qq.test"
&&&&android:versionCode="1"
&&&&android:versionName="1.0"&&
&&&&&uses-sdk
&&&&&&&&android:minSdkVersion="8"
&&&&&&&&android:targetSdkVersion="8"&/&
&&&&&application
&&&&&&&&android:allowBackup="true"
&&&&&&&&android:icon="@drawable/ic_launcher"
&&&&&&&&android:label="@string/app_name"
&&&&&&&&android:theme="@style/AppTheme"&&
&&&&&&&&&activity
&&&&&&&&&&&&android:name="com.qq.test.MainActivity"
&&&&&&&&&&&&android:label="@string/app_name"&&
&&&&&&&&&&&&&intent-filter&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.MAIN"&/&
&&&&&&&&&&&&&&&&&category&android:name="android.intent.category.LAUNCHER"&/&
&&&&&&&&&&&&&/intent-filter&
&&&&&&&&&/activity&
&&&&&&&&&!--&push服务广播&--&
&&&&&&&&&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="android.intent.action.BOOT_COMPLETED"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.bluetooth.adapter.action.STATE_CHANGED"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.TIME_SET"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.DATE_CHANGED"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.net.conn.CONNECTIVITY_CHANGE"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.BATTERY_CHANGED"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.ACTION_BATTERY_OKAY"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.ACTION_POWER_CONNECTED"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.ACTION_POWER_DISCONNECTED"&/&
&&&&&&&&&&&&&&&&&action&android:name="android.intent.action.USER_PRESENT"&/&
&&&&&&&&&&&&&&&&&action&android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE"&/&
&&&&&&&&&&&&&/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&
&&&&&&&&&!--&push服务&--&
&&&&&&&&&service
&&&&&&&&&&&&android:name="com.tencent.android.tpush.service.XGPushService"
&&&&&&&&&&&&android:exported="true"
&&&&&&&&&&&&android:persistent="true"
&&&&&&&&&&&&android:process=":xg_service_v2"&/&
&&&&&&&&&!--&请修改为APP的AccessId&--&
&&&&&&&&&!--&APP实现的Receiver,用于接收消息和结果反馈&--&
&&&&&&&&&!--&com.tencent.android.tpushdemo.CustomPushReceiver需要改为自己的Receiver&--&
&&&&&&&&&receiver&android:name="com.qq.test.CustomPushReceiver"&&
&&&&&&&&&&&&&intent-filter&
&&&&&&&&&&&&&&&&&!--&接收消息透传&--&
&&&&&&&&&&&&&&&&&action&android:name="com.tencent.android.tpush.action.PUSH_MESSAGE"&/&
&&&&&&&&&&&&&&&&&!--&监听注册、反注册、设置/删除标签、通知被点击等处理结果&--&
&&&&&&&&&&&&&&&&&action&android:name="com.tencent.android.tpush.action.FEEDBACK"&/&
&&&&&&&&&&&&&/intent-filter&
&&&&&&&&&/receiver&
&&&&&&&&&!--&请修改为APP的AccessId&--&
&&&&&&&&&meta-data
&&&&&&&&&&&&android:name="XG_V2_ACCESS_ID"
&&&&&&&&&&&&android:value=""&/&
&&&&&&&&&!--&请修改为APP的AccessKey&--&
&&&&&&&&&meta-data
&&&&&&&&&&&&android:name="XG_V2_ACCESS_KEY"
&&&&&&&&&&&&android:value="ANP7R36N65AF"&/&
&&&&&/application&
&&&&&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"&/&
&/manifest&
测试Demo&3:
&public&class&MainActivity&extends&Activity&{
&&&&private&static&Context&context&=&
&&&&@Override
&&&&protected&void&onStart()&{
&&&&&&&super.onStart();
&&&&&&&XGPushClickedResult&click&=&XGPushManager.onActivityStarted(this);
&&&&&&&if&(click&!=&null)&{&//&判断是否来自信鸽的打开方式
&&&&&&&&&&&Toast.makeText(this,&"通知被点击:"&+&click.toString(),
&&&&&&&&&&&&&&&&&&Toast.LENGTH_SHORT).show();
&&&&&&&&&&&String&customContent&=&click.getCustomContent();
&&&&&&&&&&&//&获取自定义key-value
&&&&&&&&&&&if&(customContent&!=&null&&&&customContent.length()&!=&0)&{
&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&JSONObject&json&=&new&JSONObject(customContent);
&&&&&&&&&&&&&&&&&&Log.d("TPush",&"自定义key-value:"&+&json);
&&&&&&&&&&&&&&&&&&//&获取在线自定义key-value
&&&&&&&&&&&&&&&&&&//&key1为下发的自定义key-value
&&&&&&&&&&&&&&&&&&String&customValue1&=&json.getString("key1");
&&&&&&&&&&&&&&&&&&//&。。。。
&&&&&&&&&&&&&&}&catch&(JSONException&e)&{
&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&}
&&&&&&&&&&&}
&&&&@Override
&&&&protected&void&onStop()&{
&&&&&&&super.onStop();
&&&&&&&XGPushManager.onActivityStoped(this);
&&&&private&void&initNotificationBuilder(Context&context)&{
&&&&&&&//&新建自定义样式
&&&&&&&XGBasicPushNotificationBuilder&build&=&new&XGBasicPushNotificationBuilder();
&&&&&&&//&设置自定义样式属性,该属性对对应的编号生效,指定后不能修改。
&&&&&&&build.setIcon(R.drawable.ic_launcher)
&&&&&&&&&&&&&&.setSound(
&&&&&&&&&&&&&&&&&&&&&RingtoneManager.getActualDefaultRingtoneUri(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&getApplicationContext(),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&RingtoneManager.TYPE_ALARM))&//&设置声音
&&&&&&&&&&&&&&.setDefaults(Notification.DEFAULT_VIBRATE)&//&振动
&&&&&&&&&&&&&&.setFlags(Notification.FLAG_NO_CLEAR);&//&是否可清除
&&&&&&&//&设置通知样式,样式编号为2,即build_id为2,可通过后台脚本指定
&&&&&&&XGPushManager.setPushNotificationBuilder(this,&2,&build);
&&&&&&&XGBasicPushNotificationBuilder&build11&=&new&XGBasicPushNotificationBuilder();
&&&&&&&build11.setIcon(R.drawable.ic_launcher)
&&&&&&&&&&&&&&.setSound(
&&&&&&&&&&&&&&&&&&&&&RingtoneManager
&&&&&&&&&&&&&&&&&&&&&&&&&&&&.getDefaultUri(RingtoneManager.TYPE_ALARM))
&&&&&&&&&&&&&&.setVibrate(new&long[]&{&,&,&1000&})
&&&&&&&&&&&&&&.setFlags(Notification.FLAG_NO_CLEAR);
&&&&&&&XGPushManager.setPushNotificationBuilder(this,&5,&build11);
&&&&@Override
&&&&protected&void&onCreate(Bundle&savedInstanceState)&{
&&&&&&&super.onCreate(savedInstanceState);
&&&&&&&setContentView(R.layout.activity_main);
&&&&&&&context&=&this.getApplicationContext();
&&&&&&&//&开启logcat输出,方便debug,发布时请关闭
&&&&&&&XGPushConfig.enableDebug(this,&true);
&&&&&&&XGPushManager.registerPush(this);
&&&&&&&//&设置通知的自定义样式,即build_id
&&&&&&&initNotificationBuilder(this);
&&&&&&&findViewById(R.id.Button_register).setOnClickListener(
&&&&&&&&&&&&&&new&OnClickListener()&{
&&&&&&&&&&&&&&&&&&@Override
&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{
&&&&&&&&&&&&&&&&&&&&&//&注册应用(必须调用本接口,否则APP将无法接收到通知和消息)
&&&&&&&&&&&&&&&&&&&&&//&registerPush有2个版本的接口:带账号绑定和不带
&&&&&&&&&&&&&&&&&&&&&//&registerPush可以在APP启动时或用户登陆后调用
&&&&&&&&&&&&&&&&&&&&&XGPushManager.registerPush(getApplicationContext());
&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&});
&&&&&&&findViewById(R.id.Button_registerAccount).setOnClickListener(
&&&&&&&&&&&&&&new&OnClickListener()&{
&&&&&&&&&&&&&&&&&&@Override
&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{
&&&&&&&&&&&&&&&&&&&&&Context&ctx&=&MainActivity.
&&&&&&&&&&&&&&&&&&&&&if&(ctx&!=&null)&{
&&&&&&&&&&&&&&&&&&&&&&&&&LinearLayout&layout&=&new&LinearLayout(ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&layout.setOrientation(LinearLayout.VERTICAL);
&&&&&&&&&&&&&&&&&&&&&&&&&final&EditText&textviewGid&=&new&EditText(ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&textviewGid.setHint("请输入需要绑定的账号");
&&&&&&&&&&&&&&&&&&&&&&&&&layout.addView(textviewGid);
&&&&&&&&&&&&&&&&&&&&&&&&&AlertDialog.Builder&builder&=&new&AlertDialog.Builder(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&builder.setView(layout);
&&&&&&&&&&&&&&&&&&&&&&&&&builder.setPositiveButton("账号注册",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&DialogInterface.OnClickListener()&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&void&onClick(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DialogInterface&dialog,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&int&which)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&String&text&=&textviewGid.getText()
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.toString();
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(text&!=&null
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&text.length()&!=&0)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&注册应用(必须调用本接口,否则APP将无法接收到通知和消息)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&使用绑定账号的注册接口(可针对账号下发通知和消息)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&可以重复注册,以最后一次注册为准
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XGPushManager
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.registerPush(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&getApplicationContext(),
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&text);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&});
&&&&&&&&&&&&&&&&&&&&&&&&&builder.show();
&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&});
&&&&&&&findViewById(R.id.Button_unregister).setOnClickListener(
&&&&&&&&&&&&&&new&OnClickListener()&{
&&&&&&&&&&&&&&&&&&@Override
&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{
&&&&&&&&&&&&&&&&&&&&&//&反注册,调用本接口后,APP将停止接收通知和消息
&&&&&&&&&&&&&&&&&&&&&XGPushManager.unregisterPush(context);
&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&});
&&&&&&&findViewById(R.id.Button_setTag).setOnClickListener(
&&&&&&&&&&&&&&new&OnClickListener()&{
&&&&&&&&&&&&&&&&&&@Override
&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{
&&&&&&&&&&&&&&&&&&&&&Context&ctx&=&MainActivity.
&&&&&&&&&&&&&&&&&&&&&if&(ctx&!=&null)&{
&&&&&&&&&&&&&&&&&&&&&&&&&LinearLayout&layout&=&new&LinearLayout(ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&layout.setOrientation(LinearLayout.VERTICAL);
&&&&&&&&&&&&&&&&&&&&&&&&&final&EditText&textviewGid&=&new&EditText(ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&textviewGid.setHint("请输入标签名称");
&&&&&&&&&&&&&&&&&&&&&&&&&layout.addView(textviewGid);
&&&&&&&&&&&&&&&&&&&&&&&&&AlertDialog.Builder&builder&=&new&AlertDialog.Builder(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&builder.setView(layout);
&&&&&&&&&&&&&&&&&&&&&&&&&builder.setPositiveButton("设置标签",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&DialogInterface.OnClickListener()&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&void&onClick(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DialogInterface&dialog,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&int&which)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&String&text&=&textviewGid.getText()
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.toString();
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(text&!=&null
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&text.length()&!=&0)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XGPushManager
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.setTag(MainActivity.this,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&text);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&});
&&&&&&&&&&&&&&&&&&&&&&&&&builder.show();
&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&});
&&&&&&&findViewById(R.id.Button_delTag).setOnClickListener(
&&&&&&&&&&&&&&new&OnClickListener()&{
&&&&&&&&&&&&&&&&&&@Override
&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{
&&&&&&&&&&&&&&&&&&&&&Context&ctx&=&MainActivity.
&&&&&&&&&&&&&&&&&&&&&if&(ctx&!=&null)&{
&&&&&&&&&&&&&&&&&&&&&&&&&LinearLayout&layout&=&new&LinearLayout(ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&layout.setOrientation(LinearLayout.VERTICAL);
&&&&&&&&&&&&&&&&&&&&&&&&&final&EditText&textviewGid&=&new&EditText(ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&textviewGid.setHint("请输入标签名称");
&&&&&&&&&&&&&&&&&&&&&&&&&layout.addView(textviewGid);
&&&&&&&&&&&&&&&&&&&&&&&&&AlertDialog.Builder&builder&=&new&AlertDialog.Builder(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ctx);
&&&&&&&&&&&&&&&&&&&&&&&&&builder.setView(layout);
&&&&&&&&&&&&&&&&&&&&&&&&&builder.setPositiveButton("删除标签",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&DialogInterface.OnClickListener()&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&public&void&onClick(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DialogInterface&dialog,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&int&which)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&String&text&=&textviewGid.getText()
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.toString();
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(text&!=&null
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&text.length()&!=&0)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XGPushManager
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.deleteTag(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&MainActivity.this,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&text);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&});
&&&&&&&&&&&&&&&&&&&&&&&&&builder.show();
&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&});
&&&&&&&findViewById(R.id.Button_clearCache).setOnClickListener(
&&&&&&&&&&&&&&new&OnClickListener()&{
&&&&&&&&&&&&&&&&&&@Override
&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{
&&&&&&&&&&&&&&&&&&&&&Tools.clearCacheServerItems(getApplicationContext());
&&&&&&&&&&&&&&&&&&&&&Tools.clearOptStrategyItem(getApplicationContext());
&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&});
&&&&&&&findViewById(R.id.Button_copyToken).setOnClickListener(
&&&&&&&&&&&&&&new&OnClickListener()&{
&&&&&&&&&&&&&&&&&&@Override
&&&&&&&&&&&&&&&&&&public&void&onClick(View&v)&{
&&&&&&&&&&&&&&&&&&&&&String&token&=&XGPushConfig.getToken(MainActivity.this);
&&&&&&&&&&&&&&&&&&&&&if&(token&!=&null&&&&!"".equals(token))&{
&&&&&&&&&&&&&&&&&&&&&&&&&ClipboardManager&copy&=&(ClipboardManager)&MainActivity.this
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.getSystemService(Context.CLIPBOARD_SERVICE);
&&&&&&&&&&&&&&&&&&&&&&&&&copy.setText(token);
&&&&&&&&&&&&&&&&&&&&&}&else&{
&&&&&&&&&&&&&&&&&&&&&&&&&Toast.makeText(MainActivity.this,&"请先注册,获取token!",&Toast.LENGTH_SHORT).show();
&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&});
&&&&@Override
&&&&public&boolean&onCreateOptionsMenu(Menu&menu)&{
&&&&&&&getMenuInflater().inflate(R.menu.main,&menu);
&&&&&&&return&
此服务评测版权归DevStore所有,禁止转载,申请升级为
才可进行测评
声明:DevStore评测内容都是基于专业评测人员/开发者通过真实的测试之后得出的数据,服务版本实时都在更新,所以评测并不一定是此服务的最新版本,但我们会秉承公正专业精准的态度,对开发者负责,同时欢迎大家监督和建议,如对评测内容有异议,请提交纠错,由专业的评测团队再次评测,我们会尽最大努力为大家提供更贴心的服务。
DevStore_全球首家第三方开发者服务商店,最精准的服务对比、最专业的服务评测、最及时的行业动态,为开发者挑选服务提供最全面的参考和专业分析,加入,从此告别熬夜加班,你也可以这么帅!搜索微信号:DevStore
其他推送评测
此评测的相关源码
开发者交流群:
DevStore技术交流群2:
运营交流群:
产品交流群:
深圳尺子科技有限公司
深圳市南山区蛇口网谷万海大厦C栋504
Copyright (C) 2015 DevStore. All Rights Reserved

我要回帖

更多关于 ios 信鸽推送 的文章

 

随机推荐