android receiver实例,android broadcastreceiver实例

重构代码是发现了一些冗余,但是还是有些价值,顺便记录下。

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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值