运用手机多媒体
Posted 鹏达君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运用手机多媒体相关的知识,希望对你有一定的参考价值。
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类中的一些较为常用的控制方法:
以上是关于运用手机多媒体的主要内容,如果未能解决你的问题,请参考以下文章