运用手机多媒体

 

1.使用通知

1.1简介

     通知指的是某个应用程序希望想用户发出一些提示信息,而该应用程序又不在前台运行时,就需要借助通知来实现。

 

1.2通知的基本用法

步骤:

1)实例化NotificationManager

2)设置PendingIntent用于跳转活动,发送广播,启动服务。

(该方法有四个参数,一个参数是context,第二个参数一般用不到,通常传入0即可,第三个参数是Intent对象,第四个参数用于确认PendingIntent的行为,有FLAG_ONE_SHOT、FLAG_NO_CREATE, FLAG_GANCEL_CURRENT, FLAG_UPDATE_CURRENT四种值可以选,具体含义看文档,通常情况下传入0即可)

3)实例化Notification并且设置消息

4)NotificationManager实例化对象调用notify来让通知显示(其有两个参数,一个是id号,一个是Notification对象)

实例:

注意:当我们点击了这个通知之后会跳转到NotificationActivity这个活动,该通知还会继续在状态栏上,解决这个问题有两个方法,如下:

1)在NotificationCompat.Builder中在连缀一个setAutoCancel()方法

 

在被调用的活动,广播接收器或者服务中获取到NotificationManager对象,调用cancel()把它取消掉

 

 

 

1.3 通知的进阶技巧

核心思想:NotificationCompat.Builder中提供了非常丰富的API来让我们创建出更多的效果,所以接下来我们就学习一下常用的其他效果。

1)来通知的时候,用音频来提醒

2)来通知的时候,用振动来提醒

注意,要加权限:

 

3)控制手机LED灯的显示

 

4)使用默认设置

 

1.4 通知的高级功能

1)设置长文

 

2)设置大图片

 

3)设置通知的重要程度

 

 

2.调用摄像头和相册

调用摄像头:

步骤:

1)创建File对象,用于存储拍照后的图片,并把它存放在手机SD卡的应用关联缓存目录下。(应用关联缓存目录就是指sd卡中专门用于存放当前应用缓存数据的位置,调用getExternalCacheDir()方法就可以得到这个目录,而用到这个应用关联缓目录,是因为在6.0之后,读写sd卡被列为危险权限,都要进行运行时权限处理才行,而使用应用关联目录则可以跳过这一步)

2)进行版本判断,低于Android 7.0的就调用Uri的fromFile()方法将File转换成Uri对象,这个对象标志着图片的本地真实路径。否则,就调用FileProvider的getUriForFile()方法将File对象转换成一个封装过的Uri对象。getUriForFile()接受三个参数,第一个为Context,第二个为任意唯一的字符串,第三个为刚刚创建的File对象。之所以要进行这样一层的转换,是因为在7.0系统开始,直接使用真实路径的uri被认为是不安全的,会抛出一个FileUriExposedExeption异常。而FileProvider则是一种特殊的内容提供器,它使用了和内容提供器类似的机制来对数据进行保护,可以选择性地将封装过的uri共享给外部,从而提升安全性。

3)构建Intent的对象,指定action为android.media.action.IMAGE_CAPTURE,再调用Intent的putExtra()方法指定图片的输出地址,最后调用startActivityForResult()来启动活动。(使用该方法来启动活动,是为了将处理返回来的图片,把起显示出来)

 

实例:

 

 

 

 

从相册中选择图片:

步骤:

1)动态申请WRITE_EXTERNAL_STORAGE权限

2)

 

3.播放多媒体文件

3.1播放音频

思想:播放音频文件一般使用到的是MediaPlayer类,下表列出了MediaPlayer类中的一些较为常用的控制方法:

 

posted @ 2017-09-20 18:05  鹏达君  阅读(138)  评论(0编辑  收藏  举报