package com.termux.x11; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.IBinder; import androidx.annotation.RequiresApi; import androidx.core.app.NotificationCompat; public class LorieTestService extends Service { @Override public IBinder onBind(Intent intent) { return null; } static void start(Context context) { Intent intent = new Intent(context, LorieTestService.class); intent.setAction("start"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { context.startForegroundService(intent); } else { context.startService(intent); } } @Override public void onCreate() { Intent notificationIntent = new Intent(getApplicationContext(), MainActivity.class); notificationIntent.putExtra("foo_bar_extra_key", "foo_bar_extra_value"); notificationIntent.setAction(Long.toString(System.currentTimeMillis())); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); //For creating the Foreground Service int priority = Notification.PRIORITY_HIGH; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) priority = NotificationManager.IMPORTANCE_HIGH; NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); String channelId = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O ? getNotificationChannel(notificationManager) : ""; Notification notification = new NotificationCompat.Builder(this, channelId) .setContentTitle("Termux:Wayland Test service") .setSmallIcon(R.drawable.ic_x11_icon) .setContentText("foreground service") .setContentIntent(pendingIntent) .setOngoing(true) .setPriority(priority) .setShowWhen(false) .setColor(0xFF607D8B) .build(); startForeground(3, notification); } @RequiresApi(Build.VERSION_CODES.O) private String getNotificationChannel(NotificationManager notificationManager){ String channelId = getResources().getString(R.string.app_name); String channelName = getResources().getString(R.string.app_name); NotificationChannel channel = new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_HIGH); channel.setImportance(NotificationManager.IMPORTANCE_NONE); channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE); notificationManager.createNotificationChannel(channel); return channelId; } }