I have developed a simple GPS tracking app that using foreground service to keep the app alive. There will be a notification showing that my app is running, but how can I hide the app name beside the logo? I only want the logo without showing the app name.
To keep the service active in the foreground you can create your own notification and customize it as you like.
You can use this example code as a base.
lateinit var notificationBuilder: Notification
private fun setNotification(title: String, descr: String) {
val pendingIntent = PendingIntent.getActivity(
this, 0, Intent(
this,
MainActivity::class.java
), 0
)
createNotificationChannel()
notificationBuilder = NotificationCompat.Builder(this, "misc")
.setContentTitle(title)
.setContentText(descr)
.setOnlyAlertOnce(true)
.setSmallIcon(R.drawable.ic_nordic_icon)
.setContentIntent(pendingIntent)
.build()
startForeground(1, notificationBuilder)
}
lateinit var manager: NotificationManager
private fun createNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val serviceChannel = NotificationChannel(
"misc",
"Foreground Service Channel",
NotificationManager.IMPORTANCE_DEFAULT
)
manager = getSystemService(
NotificationManager::class.java
)
manager.createNotificationChannel(serviceChannel)
}
}
And call it inside your service like:
setNotification(
"My title",
"A notification description"
)
Official doc here.
Update
You can hide the notification using a configuration like:
serviceChannel = new NotificationChannel(
"misc",
"Foreground Service Channel",
NotificationManager.IMPORTANCE_UNSPECIFIED
);
notification = new NotificationCompat.Builder(this, "misc")
.setPriority(Notification.PRIORITY_MIN)
.setContentTitle(title)
.setContentText(descr)
.setContentIntent(pendingIntent)
.build();
Remember to mark your answer as correct if it helped you. Thank you.