package com.example.jpushdemo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import cn.jpush.android.api.InstrumentedActivity;
import cn.jpush.android.api.JPushInterface;
import com.atguigu.beijingnews.R;
public class MainActivity extends InstrumentedActivity implements OnClickListener{
private Button mInit;
private Button mSetting;
private Button mStopPush;
private Button mResumePush;
private Button mGetRid;
private TextView mRegId;
private EditText msgText;
public static boolean isForeground = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initView();
registerMessageReceiver(); // used for receive msg
}
private void initView(){
TextView mImei = (TextView) findViewById(R.id.tv_imei);
String udid = ExampleUtil.getImei(getApplicationContext(), "");
if (null != udid) mImei.setText("IMEI: " + udid);
TextView mAppKey = (TextView) findViewById(R.id.tv_appkey);
String appKey = ExampleUtil.getAppKey(getApplicationContext());
if (null == appKey) appKey = "AppKey异常";
mAppKey.setText("AppKey: " + appKey);
mRegId = (TextView) findViewById(R.id.tv_regId);
mRegId.setText("RegId:");
String packageName = getPackageName();
TextView mPackage = (TextView) findViewById(R.id.tv_package);
mPackage.setText("PackageName: " + packageName);
String deviceId = ExampleUtil.getDeviceId(getApplicationContext());
TextView mDeviceId = (TextView) findViewById(R.id.tv_device_id);
mDeviceId.setText("deviceId:" + deviceId);
String versionName = ExampleUtil.GetVersion(getApplicationContext());
TextView mVersion = (TextView) findViewById(R.id.tv_version);
mVersion.setText("Version: " + versionName);
mInit = (Button)findViewById(R.id.init);
mInit.setOnClickListener(this);
mStopPush = (Button)findViewById(R.id.stopPush);
mStopPush.setOnClickListener(this);
mResumePush = (Button)findViewById(R.id.resumePush);
mResumePush.setOnClickListener(this);
mGetRid = (Button) findViewById(R.id.getRegistrationId);
mGetRid.setOnClickListener(this);
mSetting = (Button)findViewById(R.id.setting);
mSetting.setOnClickListener(this);
msgText = (EditText)findViewById(R.id.msg_rec);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.init:
init();
break;
case R.id.setting:
Intent intent = new Intent(MainActivity.this, PushSetActivity.class);
startActivity(intent);
break;
case R.id.stopPush:
JPushInterface.stopPush(getApplicationContext());
break;
case R.id.resumePush:
JPushInterface.resumePush(getApplicationContext());
break;
case R.id.getRegistrationId:
String rid = JPushInterface.getRegistrationID(getApplicationContext());
if (!rid.isEmpty()) {
mRegId.setText("RegId:" + rid);
} else {
Toast.makeText(this, "Get registration fail, JPush init failed!", Toast.LENGTH_SHORT).show();
}
break;
}
}
// 初始化 JPush。如果已经初始化,但没有登录成功,则执行重新登录。
private void init(){
JPushInterface.init(getApplicationContext());
}
@Override
protected void onResume() {
isForeground = true;
super.onResume();
}
@Override
protected void onPause() {
isForeground = false;
super.onPause();
}
@Override
protected void onDestroy() {
unregisterReceiver(mMessageReceiver);
super.onDestroy();
}
//for receive customer msg from jpush server
private MessageReceiver mMessageReceiver;
public static final String MESSAGE_RECEIVED_ACTION = "com.example.jpushdemo.MESSAGE_RECEIVED_ACTION";
public static final String KEY_TITLE = "title";
public static final String KEY_MESSAGE = "message";
public static final String KEY_EXTRAS = "extras";
public void registerMessageReceiver() {
mMessageReceiver = new MessageReceiver();
IntentFilter filter = new IntentFilter();
filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
filter.addAction(MESSAGE_RECEIVED_ACTION);
registerReceiver(mMessageReceiver, filter);
}
public class MessageReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (MESSAGE_RECEIVED_ACTION.equals(intent.getAction())) {
String messge = intent.getStringExtra(KEY_MESSAGE);
String extras = intent.getStringExtra(KEY_EXTRAS);
StringBuilder showMsg = new StringBuilder();
showMsg.append(KEY_MESSAGE + " : " + messge + "\n");
if (!ExampleUtil.isEmpty(extras)) {
showMsg.append(KEY_EXTRAS + " : " + extras + "\n");
}
setCostomMsg(showMsg.toString());
}
}
}
private void setCostomMsg(String msg){
if (null != msgText) {
msgText.setText(msg);
msgText.setVisibility(android.view.View.VISIBLE);
}
}
}