Android 仿音乐播放器自定义锁屏歌词功能
在平常使用音乐播放器时经常会遇到锁屏会显示歌词功能,做的时候也是各种手机不适配,翻阅了网上的文章,发现都是好几年前的,适配的安卓版本比较低,所以我就整合了一下分享给大家.
例如下图:
主要用到的知识点
1.锁屏的广播监听
废话不多说,先上代码
广播接收的方法,用来接收自手机系统广播的开屏锁屏:
public class LockerReceiver extends BroadcastReceiver {private static final String TAG = "LockReceiver";public LockerReceiver() {}@Overridepublic void onReceive(Context context, Intent intent) {String action = intent.getAction();if (!TextUtils.isEmpty(action)) {if (action.equals(Intent.ACTION_POWER_CONNECTED)) {//todo} else if (action.equals(Intent.ACTION_SCREEN_ON)) {} else if (action.equals(Intent.ACTION_SCREEN_OFF)) {Log.e(TAG, "onReceive---" + action);LockScreenActivity.startActivity(context);}}}
}
注册一下该广播,可以在某个Activity,也可以在Application,也可以在Service,具体根据自己的业务需求来
private void registerLockerReceiver() {IntentFilter filter = new IntentFilter();filter.addAction(Intent.ACTION_POWER_CONNECTED);filter.addAction(Intent.ACTION_SCREEN_OFF);filter.addAction(Intent.ACTION_SCREEN_ON);lockerReceiver = new LockerReceiver();registerReceiver(lockerReceiver, filter);}
同时也需要在销毁方法里面反注册:
private void unregisterLockerReceiver() {if (lockerReceiver == null) {return;}unregisterReceiver(lockerReceiver);lockerReceiver = null;}
锁屏的Activity需要单独设置window的显示方式:
/*** 显示在锁屏上面* @param window*/private void setLockerWindow(Window window) {WindowManager.LayoutParams lp = window.getAttributes();if (Build.VERSION.SDK_INT > 18) {lp.flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;}window.setAttributes(lp);window.getDecorView().setSystemUiVisibility(0x0);window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);}
开启该Activity时添加action标明为新的任务,并且要从任务栈中移出:
@NonNullprivate static Intent getIntent(Context context) {Intent screenIntent = new Intent();screenIntent.setClass(context, LockScreenActivity.class);screenIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);screenIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);return screenIntent;}
同时清单文件也要设置一些必要的属性:
<activityandroid:name=".LockScreenActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:excludeFromRecents="true"android:exported="true"android:hardwareAccelerated="true"android:launchMode="singleInstance"android:taskAffinity="com.lock.LockScreenActivity"android:theme="@style/LockScreenStyle"android:windowSoftInputMode="stateAlwaysHidden|adjustPan" />
最重要的还是权限:有些10.0手机需要赋予在应用上层显示的权限,有些10.0则不需要,参考喜马拉雅App和酷狗都是需要的
<!--10.0专属,在其他应用上层展示--><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.WAKE_LOCK" /><uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
附上demo地址:
Android 自定义锁屏Demo
Android 仿音乐播放器自定义锁屏歌词功能相关推荐
- android仿音乐播放器,Android仿音乐播放器功能
本文实例为大家分享了Android仿音乐播放器功能的具体代码,供大家参考,具体内容如下 读取本地音乐文件 源代码: import android.media.MediaPlayer; import a ...
- android 暂停音乐播放器,Android仿音乐播放器带进度的播放暂停按钮
因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度.网上找了找没有合适的,不太满意,于是自己动手写了一个. 效果如下: 主要步骤: 1.最外侧的圆环. 2.圆环内侧代表进度的圆弧. 3.暂停 ...
- android 小型音乐播放器(实现播放、下一首、上一首、自动播放、随机播放按钮、当前播放歌曲界面)
该文章主要针对 android 的音乐播放器软件进行简单的功能添加:播放.断点播放.停止.上一曲.下一曲.随机播放.显示当前播放歌曲(后续会为当前显示的播放添加动画): 软件开发流程: 1.先向内存卡 ...
- Android在线音乐播放器
波尼音乐 系列文章 Android开源在线音乐播放器--波尼音乐 Android开源音乐播放器之播放器基本功能 Android开源音乐播放器之高仿云音乐黑胶唱片 Android开源音乐播放器之自动滚动 ...
- android MusicPlayer 音乐播放器 Lrc歌词控件的实现
MusicPlayer Lrc歌词控件的实现 最近在做一个音乐播放器,关于其中歌词控件,上网查过了一些资料,然后进行修改,也算完整的实现了其功能.先看看实现后的效果. 实现的原理实际上是自定义一个Vi ...
- 最全的Android开源音乐播放器源码汇总
收集了很多音乐播放器类的Android项目源码,非常不错的开源项目,会让你事半功倍,希望大家补充...谢谢! Android基于经纬度切歌的冲绳音乐播放器源码 http://neast.cn/foru ...
- 乐乐音乐:Android音乐播放器及动感(KTV)歌词相关博客汇总
相关简介 Java Swing PC版本乐乐音乐播放器 乐乐音乐PC播放器单机版本,支持ape,wav,flac,mp3等多种格式,支持动态ksc.hrc.krc歌词文件和支持和显示翻译歌词和音译歌词 ...
- Vue实现仿音乐播放器项目总述以及阶段目录
Github地址 https://github.com/badaoliumang/vuemusicplayer Vue实现仿音乐播放器各阶段代码 https://download.csdn.net/d ...
- Vue实现仿音乐播放器6-实现新歌速递与swiper轮播图切换
前言 前面在首页已经完成今日推荐以及访问百度API获取数据,现在继续来完善home主页. 效果 新歌速递 swiper实现轮播图 实现 实现新歌速递 在components下新建新歌速递组件News_ ...
- Vue实现仿音乐播放器3-将项目托管到git以及github
Github新建项目 1.登录github,点击右上角新建仓库 2.输入仓库名以及描述等,点击Create resposity 3.新建仓库完成后,右边有个clone or download,复制SS ...
最新文章
- 100天59万行代码_如何抽出100天的代码时间
- 16张思维导图+学习路线图,囊括所有Python基础,可打印
- 深度学习模型建立过程_所有深度学习都是统计模型的建立
- html5做文字颜色渐变代码,神奇!js+CSS+DIV实现文字颜色渐变效果_javascript技巧
- 将 SharePoint 开发与其他形式的开发进行比较
- 伪装 php 版本号,linux伪装隐藏Nginx,PHP版本号提升服务器安全性
- 谁优谁劣?——AMD与Intel产品对比分析
- Flutter SliverAnimatedOpacity 透明渐变动画效果
- 5g网络架构_【5G网络架构】系列之五:5G核心网向to B演进
- 【QT】QT从零入门教程(八):QT常用控件 [QLabel、QPushButton、QLineEdit、QTextEdit]
- 安装Linux系统后无法启动win,安装Win10 CentOS7双系统后无法启动Win10系统怎么办
- logrotate日志管理工具
- javaee utf-8文件的转换
- 【语音识别】基于matlab GUI声纹识别【含Matlab源码 1022期】
- 数据库课程设计(学校运动会管理系统)
- stack Error: EACCES: permission denied
- WebDriverException: Message: unknown error: cannot find Chrome binary(ChromeDriver及谷歌官网下载地址)
- dplyr-高效的数据变换与整理工具--转载
- Windows 10 D盘操作需要管理员权限
- 强烈推荐!程序员必备的15 款工具(含阿里内部工具)