Android Nougat Media Player如何将音乐动画放入锁屏?

时间:2017-02-24 01:27:26

标签: java android android-mediaplayer android-notifications android-music-player

我正在使用Android Nougat中的原始音乐播放器,而音乐正在锁定屏幕中播放出现在Buttom中的动画,就像这个截图一样。

enter image description here

但是当我在同一个Android Nougat和Lock Screen中的同一设备上使用我自己的App Media Player时,不会出现该动画。

enter image description here

问题是:如何在我的媒体播放器应用程序中添加该动画?它不是一个gif图像,因为动画会移动到音乐的节奏。

**这是我的通知方法**如果我遗漏了某些东西或者我必须添加其他内容。

ublic void Custom_Notificacion(){

    Notification notification = new Notification(R.drawable.logobubble, null, System.currentTimeMillis());

    notificationView = new RemoteViews(getPackageName(), R.layout.layout_notificacion_personalizada);

    notificationView.setImageViewBitmap(R.id.id_FotoAlbumNotif,FotoNotif);
    notificationView.setTextViewText(R.id.id_NombreMp3Notif,NommbreArtista);
    notificationView.setTextViewText(R.id.id_NombreCancionNotif,NombreCancion);

    notification.contentView = notificationView;
    notification.flags |= Notification.FLAG_NO_CLEAR;

   startForeground(constantes.NOTIFICATION_ID.FOREGROUND_SERVICE,notification);

}

1 个答案:

答案 0 :(得分:1)

我已经阅读了一篇关于此的文章,一个可行的解决方案是自定义一个锁定屏幕页面并在其中显示动画视图,为实现此目的,您需要一个服务,听取 LOCK_SCREEN广播 ,并启动 LockScreenActivity ;同时更换系统锁定屏幕。 这里有一些代码段可能会有所帮助: 注册广播接收器

IntentFilter mScreenOffFilter = new IntentFilter();
mScreenOffFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(mScreenOffReceiver, mScreenOffFilter);  

//在接收方法

 private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
@SuppressWarnings("deprecation")
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(NOTIFY_SCREEN_OFF)) {
        Intent mLockIntent = new Intent(context, LockScreenActivity.class);
        mLockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
        startActivity(mLockIntent);
    }
}

停用锁定屏幕

KeyguardManager mKeyguardManager = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock mKeyguardLock =  mKeyguardManager.newKeyguardLock("CustomLockScreen");
mKeyguardLock.disableKeyguard();

希望这可能会有所帮助