python获取手机通知栏消息_Broadcast使用以及在通知栏显示消息

本实例只有1个界面(Activity),界面上包涵一个EditText及一个按钮。当按钮被按下时,获取EditText中的内容并广播。本实例还创建了一个BroadcastReceiver,用于接收按钮按下时的广播,并将广播消息内容显示于通知栏。当点击通知栏的广播消息时另一个Activity将会被打开。完成后显示效果如下:

  

编程实现

1、新建一个android项目(过程省略),添加需要的文件。添加后,此项目工程目录如下:

2、编辑activity_main.xml,添加一个EditText和一个按钮,完成后内容大致如下:

3、编辑MainActivity.java文件,MainActivity.java中定义了类MainActivity。MainActivity继承自Activity,以activity_main.xml定义的界面为显示界面。当activity_main.xml上的按钮按下时,获取EditText的内容并发送广播。MainActivity.java内容如下:

packagecom.broadcastreceiver.broadcastreceiverproject;importandroid.app.Activity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;importandroid.content.Context;importandroid.content.Intent;public class MainActivity extendsActivity {privateContext mContext;privateButton btnSendBroadcast;privateEditText etBroadcastContent;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mContext= this;

btnSendBroadcast=(Button)findViewById(R.id.button1);

btnSendBroadcast.setOnClickListener(newbtnSendBroadcast_Listener());

etBroadcastContent=(EditText)findViewById(R.id.editText1);

}private class btnSendBroadcast_Listener implementsView.OnClickListener

{

@Overridepublic voidonClick(View v)

{

String content=etBroadcastContent.getText().toString().trim();if (content.length() < 1)

{//显示某些内容,此处用于提醒,效果见最后

Toast.makeText(mContext, etBroadcastContent.getHint(), Toast.LENGTH_SHORT).show();return;

}

Intent intent= newIntent();

intent.setAction("com.eoeandroid.action.BroadcastReceiverTest");

intent.putExtra("msg_content", content);

sendBroadcast(intent);

}

}

}

4、编辑HelloBroadcastReceiver.java文件,此文件中定义了广播接收器BroadcastReceiver,用于接收MainActivity中发送的广播。接收到广播后,将广播的内容显示与通知栏。HelloBroadcastReceiver.java文件内容如下:

packagecom.broadcastreceiver.broadcastreceiverproject;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.app.NotificationManager;importandroid.app.Notification;importandroid.app.PendingIntent;public class HelloBroadcastReceiver extendsBroadcastReceiver

{privateContext context;

@Overridepublic voidonReceive(Context context, Intent intent)

{this.context =context;

showNotification(intent);

}//通知栏显示消息

private voidshowNotification(Intent intent)

{

NotificationManager notificationManager=(NotificationManager)context

.getSystemService(Context.NOTIFICATION_SERVICE);//一组将被执行的Intent集合

Intent aIntent[] = new Intent[1];

aIntent[0] = new Intent(context, MainActivity.class);

PendingIntent pendingIntent= PendingIntent.getActivities(context, 0, aIntent, 0);

String title= intent.getExtras().getString("msg_content");

Notification noti= newNotification.Builder(context)

.setContentTitle(title.subSequence(0, title.length()))

.setContentText(title.subSequence(0, title.length()))

.setSmallIcon(R.drawable.ic_launcher)

.setWhen(System.currentTimeMillis())

.setContentIntent(pendingIntent)//调用后当通知栏消息被点击时,Intent集合被执行

.build();

notificationManager.notify(R.layout.activity_main, noti);

}

}

5、最后需要注册广播接收器,本实例采用静态方式注册。在AndroidManifest.xml的内添加以下内容:

6、Toast.makeText(mContext, etBroadcastContent.getHint(), Toast.LENGTH_SHORT).show() 显示效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值