Android友盟推送

來源:互聯網
上載者:User

標籤:key   服務   dem   ide   tco   tca   添加   檔案   .class   

目前的版本號: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

Android友盟推送

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.