• Android友盟推送


    当前版本号:v3.0.5

    1.下载SDK解压并导入(import module,compile project(':PushSDK')),里面有demo,用demo的包名去官网添加一个应用,然后替换demo中的manifest文件里面的appkey和message_secret,就可以直接运行。

    2.初始化SDK

    1.  
      public class App extends Application {
    2.  
       
    3.  
      public PushAgent mPushAgent;
    4.  
       
    5.  
      @Override
    6.  
      public void onCreate() {
    7.  
      super.onCreate();
    8.  
      mPushAgent = PushAgent.getInstance(this);
    9.  
      //注册推送服务,每次调用register方法都会回调该接口
    10.  
      mPushAgent.register(new IUmengRegisterCallback() {
    11.  
       
    12.  
      @Override
    13.  
      public void onSuccess(String deviceToken) {
    14.  
      //注册成功会返回device token
    15.  
      Log.e("deviceToken-------",deviceToken);
    16.  
      }
    17.  
       
    18.  
      @Override
    19.  
      public void onFailure(String s, String s1) {
    20.  
       
    21.  
      }
    22.  
      });
    23.  
       
    24.  
      mPushAgent.setPushIntentServiceClass(UmengPushIntentService.class);
    25.  
       
    26.  
      }
    27.  
      }

    这样就已经可以测试了。

    3.打开指定页面

    包名加activity名,com.umeng.demo.SecondActivity

    4.自定义参数

    自定义一个service去继承UmengMessageService

    public class UmengPushIntentService extends UmengMessageService {
    1.  
      @Override
    2.  
      public void onMessage(Context context, Intent intent) {
    3.  
      Intent data = new Intent(intent);
    4.  
      data.setClass(context, TestActivity.class);
    5.  
      //需为Intent添加Flag:Intent.FLAG_ACTIVITY_NEW_TASK,否则无法启动Activity。
    6.  
      data.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    7.  
      context.startActivity(data);
    8.  
       
    9.  
      }
    10.  
       
    11.  
      }

    在跳转的activity中去接收数据并解析

    1.  
      public class TestActivity extends AppCompatActivity {
    2.  
       
    3.  
      public static final String TAG = "TestActivity";
    4.  
       
    5.  
      @Override
    6.  
      protected void onCreate(Bundle savedInstanceState) {
    7.  
      super.onCreate(savedInstanceState);
    8.  
      setContentView(R.layout.activity_test);
    9.  
       
    10.  
       
    11.  
      final String message = getIntent().getStringExtra(MESSAGE_BODY);
    12.  
      if (TextUtils.isEmpty(message))
    13.  
      return;
    14.  
      final UMessage msg;
    15.  
      try {
    16.  
      msg = new UMessage(new JSONObject(message));
    17.  
      UTrack.getInstance(this).trackMsgClick(msg);
    18.  
      Map<String, String> extra = msg.extra;
    19.  
      Log.d(TAG, "message=" + message); //消息体
    20.  
      Log.d(TAG, "custom=" + msg.custom); //自定义消息的内容
    21.  
      Log.d(TAG, "title=" + msg.title); //通知标题
    22.  
      Log.d(TAG, "text=" + msg.text); //通知内容
    23.  
      AlertDialog dialog;
    24.  
      if (null != extra && extra.containsKey("msgType"))
    25.  
      dialog = new AlertDialog.Builder(this)
    26.  
      .setTitle("if消息提示")
    27.  
      .setMessage(msg.text+"11111")
    28.  
      .setCancelable(false)
    29.  
      .setPositiveButton("确认", new DialogInterface.OnClickListener() {
    30.  
      @Override
    31.  
      public void onClick(DialogInterface dialog, int which) {
    32.  
      }
    33.  
      })
    34.  
      .create();
    35.  
      else
    36.  
      dialog = new AlertDialog.Builder(this)
    37.  
      .setTitle("else消息提示")
    38.  
      .setMessage(msg.text)
    39.  
      .setCancelable(false)
    40.  
      .setPositiveButton("确认", null)
    41.  
      .create();
    42.  
       
    43.  
      dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
    44.  
      @Override
    45.  
      public void onDismiss(DialogInterface dialog) {
    46.  
      onBackPressed();
    47.  
      }
    48.  
      });
    49.  
      dialog.show();
    50.  
      } catch (JSONException e) {
    51.  
      e.printStackTrace();
    52.  
      }
    53.  
      }
    54.  
      }

    自定义的service需要在application类中调用

    mPushAgent.setPushIntentServiceClass(UmengPushIntentService.class);

    同时需要在manifest在注册

    1.  
      <service android:name=".UmengPushIntentService"
    2.  
      android:process=":push"/>

    官方文档:http://dev.umeng.com/push/android/integration#4

  • 相关阅读:
    Shell中调用、引用、包含另一个脚本文件的三种方法
    mysql基础
    传智博客(JavaWeb方面的所有知识)听课记录(经典)
    nginx配置负载均衡与反向代理
    nginx 详解
    iOS开发之集成ijkplayer视频直播
    Nginx配置文件nginx.conf中文详解(总结)
    WorldWind源码剖析系列:数学引擎类MathEngine
    WorldWind源码剖析系列:二维点类Point2d和三维点类Point3d
    WorldWind源码剖析系列:枚举类型
  • 原文地址:https://www.cnblogs.com/yelanggu/p/9549540.html
Copyright © 2020-2023  润新知