通知不会出现在 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通知