有没有办法在API30或更高版本的Android电视上显示通知



我有一个Android电视应用程序,它的主要功能是在用户观看电视时向他们显示实时通知。我实际上使用了以下代码向用户显示通知;

View layout = View.inflate(MyApp.getAppContext(), R.layout.notification_layout, null);
TextView text = layout.findViewById(R.id.notification_text);
text.setText(mMessage);
ImageView image = layout.findViewById(R.id.notification_image);
image.setImageResource(mImageId);
Toast toast = new Toast(MyApp.getAppContext());
toast.setGravity(Gravity.TOP | Gravity.END, 30, 30);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();

但正如安卓所说,setGravity方法不再适用于运行API30或更高版本的设备。https://developer.android.com/reference/android/widget/Toast#setGravity(int,%20int,%20int(

作为我申请的详细流程;

  1. 我使用firebase云消息服务从Android电视应用程序获取实时事件
  2. 当我将数据发送到https://fcm.googleapis.com/fcm/sendURL时,Android电视应用程序可以从FirebaseMessagingService类的onMessageReceived函数中获取消息。(我发送数据消息而不是通知消息,因为我知道安卓电视没有通知尝试。(
  3. 当我从电视应用程序收到数据消息后,我会使用上面的代码显示通知

现在,由于Android API级别的限制,我无法显示通知,但我必须向用户显示通知或类似通知的内容,因为这是我的应用程序的主要功能。现在,当用户正在看电视和应用程序在后台运行时,我该如何通知他们。谢谢

我已经使用WindowManager接口处理了这个问题。我的新通知显示器如下所示;

WindowManager mWindowManager = (WindowManager) MyApp.getAppContext().getSystemService(MyApp.getAppContext().WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.RIGHT;
params.x = 0;
params.y = 100;
View layout = View.inflate(MyApp.getAppContext(), R.layout.notification_layout, null);
TextView text = layout.findViewById(R.id.notification_text);
text.setText(mMessage);
ImageView image = layout.findViewById(R.id.notification_image);
image.setImageResource(mImageId);
mWindowManager.addView(layout, params);

当我的应用程序在后台运行时,此界面需要用户权限才能显示通知。当我从电视的应用程序菜单中授予Display over other apps权限时,我的应用程序的通知功能运行良好。

我还在清单中添加了以下权限;

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

相关内容

  • 没有找到相关文章

最新更新