丰富你的程序,运用手机多媒体
使用通知
- 通知(Notification)是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些,而该应用程序又不在前台运行时,就可以借助通知来实现。
通知的基本用法
- 首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。getSystemService()接收的参数为Context.NOTIFICATION_SERVICE。
NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
- 创建一个Notification对象这个对象用于存储通知所需的各种信息
- 第一个参数用于指定通知的图标
- 第二个参数用于指定通知的 ticker 内容
- 第三个参数用于指定通知被创建的时间,以毫秒为单位
Notification notification = new Notification(R.drawable.icon,"This is ticker text"</span>,System.currentTimeMillis());
- 调用Notification的setLatestEventInfo()方法可以给通知设置一个标准布局
- 第一个参数是 Context
- 第二个参数用于指定通知的标题内容,下拉系统状态栏就可以看到这部分内容
- 第三个参数用于指定通知的正文内容
- 第四个参数为PendingIntent
notification.setLatesEventInfo(context,"This is content title","This is content text",pendingIntent);
- 调用NotificationManager的notify()方法可以让通知显示出来
manager.notify(1,notification);
- NotificationManager的cancel()方法可以取消通知
- #### PendingIntent
- Intent更加倾向于去立即执行某个动作,而PendingIntent更加倾向于在某个合适的时机去执行某个动作。
- PendingIntent简单的理解为延迟执行的Intent。
- 获取PendingIntent的方法:getActivity()、getBroadcast()、getService()。
- 第一个参数依旧是 Context
- 第二个参数一般用不到,通常都是传入 0 即可
- 第三个参数是一个 Intent 对象,我们可以通过这个对象构建出 PendingIntent 的“意图” 。
- 第四个参数用于确定 PendingIntent 的行为,有FLAG_ONE_SHOT、 FLAG_NO_CREATE、 FLAG_CANCEL_CURRENT 和 FLAG_UPDATE_CURRENT 这四种值可选,
通知的高级技巧
- sound属性可以在通知里播放一段音频
Uri soundUri = Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg")); notification.sound = soundUri;
- vibrate属性可以让手机进行振动
long[] vibrate = {0,1000,1000,1000};
notification.vibrate = vibrates;
- 控制手机的LED灯显示
- edARGB 用于控制 LED 灯的颜色
- ledOnMS 用于指定 LED 灯亮起的时长,以毫秒为单位
- ledOffMS用于指定 LED 灯暗去的时长,也是以毫秒为单位
- flags 可用于指定通知的一些行为,其中就包括显示 LED 灯这一选项
notification.ledARGB = Color.GREEN; notification.ledOnMS = 1000; notification.ledOffMS = 1000; notification.flags = Notification.FLAG_SHOW_LIGHTS;
播放多媒体文件
播放音频
播放视频
时间: 2024-10-27 10:48:32