pad 设置推送服务器的。
t.setIp("192.168.1.222");
t.setPort("8000");
t.setXmppPort("5222");
pad 段设置定时器给服务端发消息 3秒钟循环的方式 ,服务端收到,就会记住pad 端的。 也就是 这个pad在服务端注册信息了。 下次服务端就可以给这个pad推送消息。
当不需要服务运行,发个广播让其取消。
TelephonyManager telephonyManager = (TelephonyManager) TpushService.this
.getSystemService(Context.TELEPHONY_SERVICE);
String id = telephonyManager.getDeviceId();
String sMake = Build.MANUFACTURER.toLowerCase();
name = sMake + "-imei-" + id;
t.setAlias(this, name, null)
下面是华夏pad 端 服务完整代码
public class TpushService extends Service {
public static TechownPush t;
private PushPostListener pushPostListener;
private String name;
@Override
public void onCreate() {
super.onCreate();
t = new TechownPush(this, new PushListener() {
public void push(String code, String massage) {
Log.i("push", "massage:" + massage);
System.out.print("push"+code+massage);
}
});
// 设置推送消息小图标
t.setIp("192.168.1.222");
t.setPort("8000");
t.setXmppPort("5222");
TelephonyManager telephonyManager = (TelephonyManager) TpushService.this
.getSystemService(Context.TELEPHONY_SERVICE);
String id = telephonyManager.getDeviceId();
String sMake = Build.MANUFACTURER.toLowerCase();
name = sMake + "-imei-" + id;
t.setAlias(this, name, null);
t.setNotificationIcon(android.R.drawable.ic_menu_crop);
pushPostListener = new PushPostListener();
IntentFilter filter1 = new IntentFilter();
filter1.addAction("ELITOR_CLOCK");
filter1.setPriority(Integer.MAX_VALUE);
registerReceiver(isPushReceiver, filter1);
initPush();
initAlarmManager();
}
public void initPush() {
t.init(pushPostListener);
}
private BroadcastReceiver isPushReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (!isPush) {
Log.i("push", "tpush");
initPush();
}
}
};
PendingIntent piClock;
private void initAlarmManager() {
Intent intent = new Intent("ELITOR_CLOCK");
piClock = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
30 * 1000, piClock);
}
private void cancelAlarmManager() {
if (piClock != null) {
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.cancel(piClock);
}
}
private boolean isPush;
class PushPostListener implements TechownPushPostListener {
public void postListener(boolean isError) {
if (isError) {
msgStr = "连接服务器失败,启动推送失败,正在尝试重连!";
isPush = false;
} else {
msgStr = "启动推送成功!";
isPush = true;
cancelAlarmManager();
}
h.sendMessage(h.obtainMessage());
}
}
String msgStr;
Handler h = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
// Toast.makeText(MainService.this, msgStr,
// Toast.LENGTH_LONG).show();
}
};
public static boolean isDestroy;
@Override
public void onDestroy() {
if (isDestroy) {
if (t != null) {
t.stopPush();
}
try {
unregisterReceiver(isPushReceiver);
} catch (Exception e) {
e.printStackTrace();
}
} else {
Intent localIntent = new Intent();
localIntent.setClass(this, TpushService.class);
this.startService(localIntent);
}
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
flags = START_STICKY;
return super.onStartCommand(intent, flags, startId);
}
}