在 Android 13 中,全屏通知是一种新的通知样式,它可以提供给用户更加沉浸式的体验。全屏通知可以在特定情况下覆盖整个屏幕,并展示通知的内容。这种通知类型特别适合那些需要立即吸引用户注意的情况,例如来电通知或者紧急警报。

要在 Android 13 中创建全屏通知,你可以使用 Notification.Builder类中的 setFullScreenIntent() 方法来设置全屏意图。下面是一个简单的示例,展示了如何创建一个全屏通知:

// 导入必要的包
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.os.Build;

// 创建一个全屏通知的例子
public class FullScreenNotificationExample {

    public static void showFullScreenNotification(Context context) {
        // 创建一个通知渠道(如果是在 Oreo 及以上版本)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            String channelId = "full_screen_channel";
            CharSequence channelName = "FullScreen Channel";
            int importance = NotificationManager.IMPORTANCE_HIGH;
            NotificationChannel channel = new NotificationChannel(channelId, channelName, importance);
            NotificationManager notificationManager = context.getSystemService(NotificationManager.class);
            notificationManager.createNotificationChannel(channel);
        }

        // 创建通知构建器
        Notification.Builder builder = new Notification.Builder(context)
                .setContentTitle("全屏通知标题")
                .setContentText("这是一个全屏通知的示例文本")
                .setSmallIcon(R.drawable.notification_icon);

        // 设置全屏意图
        Intent fullScreenIntent = new Intent(context, FullScreenActivity.class);
        builder.setFullScreenIntent(fullScreenIntent, true);

        // 创建通知管理器并发出通知
        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        notificationManager.notify(1, builder.build());
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.

在这个例子中,我们首先检查设备是否运行的是 Android Oreo (8.0) 或更高版本,因为从这个版本开始,需要创建通知渠道。然后我们创建了一个 Notification.Builder 实例,并设置了通知的基本属性,如标题、文本和图标。最后,我们通过调用 setFullScreenIntent()方法设置了全屏意图,并指定了一个 Intent,该 Intent 会在用户点击通知时启动对应的活动。

请注意,为了使全屏通知生效,需要确保应用具有相应的权限,并且用户已经授予了这些权限。从 Android 13 开始,对于非豁免的通知(包括前台服务的通知),还需要处理新的运行时权限 POST_NOTIFICATIONS