重构代码是发现了一些冗余,但是还是有些价值,顺便记录下。
1、广播接收器
package com.g4vision.broadcastreceiver;
import com.g4vision.R;
import com.g4vision.common.CONSTANT;
import com.g4vision.common.Utils;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
/**
* 广播接收器
*
*
*/
public class MVRBroadcastReceiver extends BroadcastReceiver{
private Context context;
private Intent intent;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
this.context=context;
this.intent=intent;
Bundle bundle=intent.getExtras();
String tmpInlineStatus=bundle.getString(CONSTANT.MVR_BROADCAST_CMD);
//System.out.println("接收到的消息为"+tmpInlineStatus);
if(tmpInlineStatus.equalsIgnoreCase("inline")){
setInlineStatus();
}else if(tmpInlineStatus.equalsIgnoreCase("uninline")){
Utils.mNM.cancel(CONSTANT.INLINE_STATUS_ID);
}else if(tmpInlineStatus.equalsIgnoreCase("picTransmitting")){
setPicTransmittingStatus();
}
}
/**
* 设置在线图标
*/
private void setInlineStatus()
{
Notification m=new Notification();
m.icon=R.drawable.notification_inline_status;
m.tickerText="inline";
m.when=System.currentTimeMillis();
//m.defaults |= Notification.DEFAULT_SOUND;
// m.vibrate = new long[] { 100, 250, 100, 500};
PendingIntent p=PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
m.setLatestEventInfo(context, "Inline", "I am inline", p);
Utils.mNM.notify(CONSTANT.INLINE_STATUS_ID, m);
}
/**
* 指示图片正在传输
*/
private void setPicTransmittingStatus()
{
//初始化NotificationManager对象
Notification mNotification=new Notification();//实例化mNotification
//设置传输状态的图标
mNotification.icon=R.anim.stat_transmit_upload;
mNotification.tickerText="Pic Transmit";
mNotification.when=System.currentTimeMillis();
//通知到来时发出默认的声音,震动
//mNotification.defaults |= Notification.DEFAULT_SOUND;
//mNotification.vibrate = new long[] { 100, 250, 100, 500};
PendingIntent transmitPendingIntent=PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mNotification.setLatestEventInfo(context, "Transmit", "pic is transmitting", transmitPendingIntent);
Utils.mNM.notify(CONSTANT.PIC_TRANSMITTING_ID, mNotification);
}
}
2、注册广播
/**
* 注册 MVR 广播器
* 用于 在线状态显示,图片传输显示
*/
private static void registerMVRBroadreceiverCast()
{
mvrBroadcastReceiver=new MVRBroadcastReceiver();
IntentFilter filter = new IntentFilter(CONSTANT.INLINE_STATUS_CMD);
ctx.registerReceiver(mvrBroadcastReceiver, filter);
}
3、注销广播
/**
* 注销 MVR 广播器
*/
private static void unregisterMVRBroadreceiverCast()
{
ctx.unregisterReceiver(mvrBroadcastReceiver);
}
4、在线通知,传输图片通知
/**
* 非在线提示(下线)
*/
public static void unInlineNotification()
{
/*
Intent intent=new Intent(CONSTANT.INLINE_STATUS_CMD);
Bundle bundle=new Bundle();
bundle.putString(CONSTANT.MVR_BROADCAST_CMD, "uninline");
intent.putExtras(bundle);
ctx.sendBroadcast(intent);
*/
mNM.cancel(CONSTANT.INLINE_STATUS_ID);
}
/**
* 通知栏提示图片正在传输
*/
public static void picTransmittingNotification()
{
Intent intent=new Intent(CONSTANT.INLINE_STATUS_CMD);
Bundle bundle=new Bundle();
bundle.putString(CONSTANT.MVR_BROADCAST_CMD, "picTransmitting");
intent.putExtras(bundle);
ctx.sendBroadcast(intent);
}