通知不会出现在 Android TV 上

Posted

技术标签:

【中文标题】通知不会出现在 Android TV 上【英文标题】:Notification Won't Appear on Android TV 【发布时间】:2016-04-17 20:50:20 【问题描述】:

我正在使用 android TV 上的通知。不过,我无法在屏幕上收到通知。我正在使用 Android 6.0 上的 Nexus 播放器。

当我在手机上运行此代码时,会出现通知。但在电视上,通知不会出现。我错过了什么吗?

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    showNotification();


private void showNotification() 
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("My notification")
            .setContentText("Hello World!")
            .setCategory(Notification.CATEGORY_RECOMMENDATION)
            .setPriority(Notification.PRIORITY_HIGH) // heads up must be high priority
            .setAutoCancel(true)
            .setVibrate(new long[0]); // needed to guarantee heads up (need vibrate or ringtone)

    Notification notification = new NotificationCompat.BigPictureStyle(mBuilder).build();

    NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    // mId allows you to update the notification later on.
    int mId = 0;
    mNotificationManager.notify(mId, notification);

编辑 我认为我的代码一直在工作。我的onCreate() 中有上述代码。所以,我期待在应用程序启动时会在屏幕上弹出某种通知。但是,我看到当我按下“主页”按钮时,该主页轮播中有一个推荐。当我单击它时,它正确地遵循了我的待定意图。如果我删除 .setCategory(Notification.CATEGORY_RECOMMENDATION) 行,这将不会发生。这就是 Android TV“通知”的关键

【问题讨论】:

【参考方案1】:

电视通知在某些方面与电话通知不同,并且可能具有特定的附加参数。尝试添加更多属性。这是我在我的一个应用程序中实现的电视通知的 sn-p。

Notification notification = new NotificationCompat.BigPictureStyle(
            new NotificationCompat.Builder(mContext)
                    .setContentTitle(video.getString("title"))
                    .setContentText(mDescription)
                    .setPriority(mPriority)
                    .setLocalOnly(true)
                    .setOngoing(true)
                    .setColor(mContext.getResources().getColor(android.R.color.holo_green_dark))
                    .setCategory(Notification.CATEGORY_RECOMMENDATION)
                    .setLargeIcon(thumbnail)
                    .setSmallIcon(R.drawable.ic_note)
                    .setContentIntent(launchApp(mContext))
                    .setExtras(null))
            .build();


    return notification;

【讨论】:

你知道吗,我认为我的代码一直在工作。我的onCreate() 中有代码。所以,我期待在应用程序启动时会在屏幕上弹出某种通知。但是,我看到当我按下“主页”按钮时,该主页轮播中有一个推荐。当我点击它时,它正确地遵循了我的待定意图。【参考方案2】:

由于 Android TV 作为 Android 智能手机的工作受到更多限制,因此您需要实例化并设置 TvExtender

但是由于它是用@SystemApi注解标记的,所以没那么容易..

【讨论】:

以上是关于通知不会出现在 Android TV 上的主要内容,如果未能解决你的问题,请参考以下文章

Android TV 应用程序的持续状态? (在Android上用啥代替通知栏)

没有为android.media.tv.action.INITIALIZE_PROGRAMS发送BroadcastReceiver通知

应用被拒绝。适用于 Android TV 的 Google Play 资格问题

Android TV 上的 GCM

如何访问 Android (TV) 上的推送通知计数器?

Android TV 从 URL 播放视频