第一行代码 学习笔记 丰富你的程序--运用手机多媒体

8.1  将程序运行到手机上

 

8.2 使用通知

  通知是Android系统中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。

8.2.1 通知的基本用法

  通知的用法比较灵活,既可以在活动里创建,也可以在广播接收器里创建,还可以在服务里创建。不过创建的整体步骤相同

首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICATION_SERVICE即可。因此,获取NotificationManager的实例就可以写成:

NotificationManager manager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

接下来需要使用一个Builder构造器来创建Notification对象,但问题在于,几乎Android系统的每一个版本都会对通知这部分功能进行或多或少的修改。解决方案:使用support库中提供的兼容API。support-v4库提供了一个NotificationCompat类,使用这个类的构造器来创建Notification对象,就可以保证程序在所有Android系统版本上都能正常工作。实例如下:

Notification notification =new NotificationCompat.Builder(context).build();

当然 ,上述代码只是创建了一个空的Notification 对象

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

然后,只需调用NotificationManager的notify()方法就可以让通知显示出来了。notify()方法接收两个参数,第一个参数是id,要保证为每个通知所指定的id都是不同的。第二个则是Notification对象。

实例如下:

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

想要实现通知的点击效果,我们还需要再代码中进行相应的设置,这就涉及了一个全新的概念PendingIntent.

PendingIntent提供了几个静态方法用于获取PendingIntent的实例,可以根据需求来选择是使用getActivity()方法,getBroadcast()方法,还是getService()方法。这几个方法所接收的参数都是相同的,第一个参数依旧是Context,不用多做解释,第二个参数一般用不到,通常都是传入0即可。第三个参数是一个Intent对象。我们可以通过这个对象构建出PendingIntent的“意图”。第四个参数用于确定PendingIntent()的行为,有FLAG_ONE_SHOT,FLAG_NO_CREATE,FLAG_CANCEL_CURREND和FALG_DPDATE_CURRENT这4种值可选。每种值的具体含义可以查阅文档,通常情况下直接传入0即可。

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

8.2.2 通知的进阶技巧

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

8.2.3 通知的高级功能

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

8.3 调用摄像头和相册

8.3.1 调用摄像头拍照

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

8.3.2 从相册中选择照片

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

8.4 播放多媒体文件

8.4.1 播放音频

  在Android中播放音频文件一般都是使用MediaPlayer类来实现的,它对多种格式的音频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了MediaPlayer类中一些较为常用的控制方法。

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

 了解上述方法后。我们来梳理一下MediaPlayer的工作流程。首先需要创建出一个MediaPlayer对象,然后调用setDataSource()方法来设置音频文件的路径,再调用prepare()方法使MediaPlayer进入到准备状态,接下来调用 start()方法就可以开始播放音频,调用pause()方法就会暂停播放,调用reset()方法就会停止播放。

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

8.4.2 播放视频

  播放视频文件其实不比播放音频文件复杂,主要是使用VideoView类来实现的。这个类将视频的显示和控制集于一身。VideoView的用法和MediaPlayer也比较类似,主要有一下常用的方法:

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体

第一行代码 学习笔记 丰富你的程序--运用手机多媒体