首页 > 学院 > 开发设计 > 正文

信鸽推送用法

2019-11-09 14:28:10
字体:
来源:转载
供稿:网友
step1.注册并下载SDK 地址http://xg.QQ.com/apps/ctr_app应用创建成功后,点击“应用配置”即可看到APP专属的accessId和AccessKey等信息。step2.导入jar包setp3.配置Androidmanifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.dc.xgdemo"><!-- 【必须】 信鸽SDK所需权限 --><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.WRITE_SETTINGS" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.VIBRATE" /><!-- 【常用】 信鸽SDK所需权限 --><uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" /><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 【可选】 信鸽SDK所需权限 --><uses-permission android:name="android.permission.RESTART_PACKAGES" /><uses-permission android:name="android.permission.BROADCAST_STICKY" /><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.BLUETOOTH" /><uses-permission android:name="android.permission.BATTERY_STATS" /><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/APPTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- 【必须】 (2.30及以上版新增)展示通知的activity --><activityandroid:name="com.tencent.android.tpush.XGPushActivity"android:exported="false"android:theme="@android:style/Theme.Translucent"><intent-filter><!-- 若使用AndroidStudio,请设置android:name="android.intent.action" --><action android:name="android.intent.action" /></intent-filter></activity><!-- 【必须】 信鸽receiver广播接收 --><receiverandroid:name="com.tencent.android.tpush.XGPushReceiver"android:process=":xg_service_v2"><intent-filter android:priority="0x7fffffff"><!-- 【必须】 信鸽SDK的内部广播 --><action android:name="com.tencent.android.tpush.action.SDK" /><action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" /><!-- 【必须】 系统广播:网络切换 --><action android:name="android.net.conn.CONNECTIVITY_CHANGE" /><!-- 【可选】 系统广播:开屏 --><action android:name="android.intent.action.USER_PRESENT" /><!-- 【可选】 一些常用的系统广播,增强信鸽service的复活机会,请根据需要选择。当然,你也可以添加APP自定义的一些广播让启动service --><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><!-- 【可选】 usb相关的系统广播,增强信鸽service的复活机会,请根据需要添加 --><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 --><serviceandroid:name="com.tencent.android.tpush.service.XGPushService"android:exported="true"android:persistent="true"android:process=":xg_service_v2" /><!-- 【必须】 --><serviceandroid:name="com.tencent.android.tpush.rpc.XGRemoteService"android:exported="true"><intent-filter><!-- 【必须】 请修改为当前APP名包.PUSH_ACTION,如demo的包名为:com.example.dc.xgdemo --><action android:name="com.example.dc.xgdemo.PUSH_ACTION" /></intent-filter></service><!-- 【必须】 请修改为APP的AccessId,“21”开头的10位数字,中间没空格 --><meta-dataandroid:name="XG_V2_ACCESS_ID"android:value="2100250500" /><!-- 【必须】 请修改为APP的AccessKey,“A”开头的12位字符串,中间没空格 --><meta-dataandroid:name="XG_V2_ACCESS_KEY"android:value="A95A2HLQ4K1K" /></application></manifest>step4.在activity中注册信鸽public class MainActivity extends AppCompatActivity {Message m = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);XGPushConfig.enableDebug(this, true);setContentView(R.layout.activity_main);getToken();}/*** 获取设备Token*/private void getToken() {Handler handler = new HandlerExtension(MainActivity.this);m = handler.obtainMessage();// 注册接口XGPushManager.registerPush(getApplicationContext(), "单个账号",new XGIOperateCallback() {@Overridepublic void onSuccess(Object data, int flag) {Log.i("info", "+++ register push sucess. token:" + data);m.obj = "+++ register push sucess. token:" + data;m.sendToTarget();}@Overridepublic void onFail(Object data, int errCode, String msg) {Log.i("info", "+++ register push fail. token:" + data+ ", errCode:" + errCode + ",msg:" + msg);m.obj = "+++ register push fail. token:" + data+ ", errCode:" + errCode + ",msg:" + msg;m.sendToTarget();}});}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);}@Overrideprotected void onPause() {super.onPause();XGPushManager.onActivityStoped(this);}private static class HandlerExtension extends Handler {WeakReference<MainActivity> mActivity;HandlerExtension(MainActivity activity) {mActivity = new WeakReference<>(activity);}@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);MainActivity theActivity = mActivity.get();if (theActivity == null) {theActivity = new MainActivity();}if (msg != null) {Log.i("info", "msg--->" + msg.obj.toString());}}}}setp5.如果要处理广播创建一个广播类XGPushBaseReceiverpublic class MessageReceiver extends XGPushBaseReceiver{@Overridepublic void onRegisterResult(Context context, int i, XGPushRegisterResult xgPushRegisterResult) {}@Overridepublic void onUnregisterResult(Context context, int i) {}@Overridepublic void onSetTagResult(Context context, int i, String s) {}@Overridepublic void onDeleteTagResult(Context context, int i, String s) {}/*** 消息透传* @param context* @param xgPushTextMessage*/@Overridepublic void onTextMessage(Context context, XGPushTextMessage xgPushTextMessage) {if(xgPushTextMessage!=null){Log.e("info","message:"+xgPushTextMessage.toString());}}/*** 通知点击回调* @param context* @param xgPushClickedResult*///可以直接在activity中获取,下面这个方法是写在activity中的// protected void onResume() {// // TODO Auto-generated method stub// super.onResume();// XGPushClickedResult click = XGPushManager.onActivityStarted(this);// Log.d("TPush", "onResumeXGPushClickedResult:" + click);// if (click != null) { // 判断是否来自信鸽的打开方式// Toast.makeText(this, "通知被点击:" + click.toString(),// Toast.LENGTH_SHORT).show();// }// }@Overridepublic void onNotifactionClickedResult(Context context, XGPushClickedResult xgPushClickedResult) {if(xgPushClickedResult!=null){Log.e("info","click:"+xgPushClickedResult.toString());}}/*** 通知的内容* @param context* @param xgPushShowedResult*/@Overridepublic void onNotifactionShowedResult(Context context, XGPushShowedResult xgPushShowedResult) {if(xgPushShowedResult!=null){Log.e("info","notifaction:"+xgPushShowedResult.toString());}}}注册广播<!-- YOUR_PACKAGE_PATH.CustomPushReceiver需要改为自己的Receiver: --><receiver android:name=".receiver.MessageReceiver"android:exported="true" ><intent-filter><!-- 接收消息透传 --><action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" /><!-- 监听注册、反注册、设置/删除标签、通知被点击等处理结果 --><action android:name="com.tencent.android.tpush.action.FEEDBACK" /></intent-filter></receiver>项目下载地址:http://download.csdn.net/detail/daidaishuiping/9752414
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表