美文网首页
Android8.0 通知栏适配(播放器)

Android8.0 通知栏适配(播放器)

作者: Peter_W | 来源:发表于2018-09-29 15:42 被阅读0次

    附上源码地址 https://github.com/ZhongchengWu/NotificationBar

    Android 8.0系统新增了通知栏渠道。

    首先,如果你升级了appcompat库,那么所有使用appcompat库来构建通知的地方全部都会进行废弃方法提示,如下所示:

    所以,一定要对通知栏进行适配。

    创建好项目之后,打开app/build.gradle文件检查一下,确保targetSdkVersion已经指定到了26或者更高

    compileSdkVersion28

    defaultConfig{

        applicationId"com.example.wuzhongcheng.notificationbar"

        minSdkVersion26

        targetSdkVersion28

        versionCode1

        versionName"1.0"

        testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"

    }

    首先要确保的是当前手机的系统版本必须是Android 8.0系统或者更高,因为低版本的手机系统并没有通知渠道这个功能,我做了一个判断,从而创建了通知渠道。

    NotificationCompat.Builder 用来设置一些通知栏的属性

    Channel是渠道

    Manager用来对通知栏进行一些更新或者删除

    像播放器这种,如何对通知栏的按钮设置点击?


    RemoteViews没有专门的setOnclickListener方法,但是我们可以通过setOnClickPendingIntent将控件的id和pendingIntent进行绑定

    通过Intent发送信息给我们这个MediaNotificationService,Extra里面包含了指令(上一首,下一首),但这并不能实现效果,还需要将intent添加到pendingIntent中,通过mBuilder设置

    通过重写onStartCommand方法来接受发送的信息

    然后对接收的信息做一个判断,从而进行上一首亦或是下一首/暂停/播放

    最后要记住一点,每次操作完之后要对通知栏的状态进行一个更新

    删除通知栏?


    这里同样有一个版本判断的问题,在8.0及以上版本需要调用deleteNotificationChannel来删除渠道,低版本直接stopForground停止前台显示

    相关文章

      网友评论

          本文标题:Android8.0 通知栏适配(播放器)

          本文链接:https://www.haomeiwen.com/subject/dkqboftx.html