Skip to content

Instantly share code, notes, and snippets.

@codinginflow
Created September 28, 2021 14:19
Show Gist options
  • Save codinginflow/33e2ef8270892acca1ce7cab955ee3d3 to your computer and use it in GitHub Desktop.
Save codinginflow/33e2ef8270892acca1ce7cab955ee3d3 to your computer and use it in GitHub Desktop.
Notifications Tutorial Part 1
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
tools:context="com.codinginflow.notificationsexample.MainActivity">
<EditText
android:id="@+id/edit_text_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Title" />
<EditText
android:id="@+id/edit_text_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Message" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="sendOnChannel1"
android:text="Send on Channel 1" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="sendOnChannel2"
android:text="Send on Channel 2" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.codinginflow.notificationsexample">
<application
android:name=".App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
package com.codinginflow.notificationsexample;
import android.app.Application;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.os.Build;
public class App extends Application {
public static final String CHANNEL_1_ID = "channel1";
public static final String CHANNEL_2_ID = "channel2";
@Override
public void onCreate() {
super.onCreate();
createNotificationChannels();
}
private void createNotificationChannels() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel1 = new NotificationChannel(
CHANNEL_1_ID,
"Channel 1",
NotificationManager.IMPORTANCE_HIGH
);
channel1.setDescription("This is Channel 1");
NotificationChannel channel2 = new NotificationChannel(
CHANNEL_2_ID,
"Channel 2",
NotificationManager.IMPORTANCE_LOW
);
channel2.setDescription("This is Channel 2");
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(channel1);
manager.createNotificationChannel(channel2);
}
}
}
package com.codinginflow.notificationsexample;
import android.app.Notification;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import static com.codinginflow.notificationsexample.App.CHANNEL_1_ID;
import static com.codinginflow.notificationsexample.App.CHANNEL_2_ID;
public class MainActivity extends AppCompatActivity {
private NotificationManagerCompat notificationManager;
private EditText editTextTitle;
private EditText editTextMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
notificationManager = NotificationManagerCompat.from(this);
editTextTitle = findViewById(R.id.edit_text_title);
editTextMessage = findViewById(R.id.edit_text_message);
}
public void sendOnChannel1(View v) {
String title = editTextTitle.getText().toString();
String message = editTextMessage.getText().toString();
Notification notification = new NotificationCompat.Builder(this, CHANNEL_1_ID)
.setSmallIcon(R.drawable.ic_one)
.setContentTitle(title)
.setContentText(message)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setCategory(NotificationCompat.CATEGORY_MESSAGE)
.build();
notificationManager.notify(1, notification);
}
public void sendOnChannel2(View v) {
String title = editTextTitle.getText().toString();
String message = editTextMessage.getText().toString();
Notification notification = new NotificationCompat.Builder(this, CHANNEL_2_ID)
.setSmallIcon(R.drawable.ic_two)
.setContentTitle(title)
.setContentText(message)
.setPriority(NotificationCompat.PRIORITY_LOW)
.build();
notificationManager.notify(2, notification);
}
}
@widmerflo
Copy link

This project works on its own but when I add the code to my existing project and click the button NOTHING happens! Idk why. No error, just nothing happens. I'm so confused.

Do you have everything right in your code? Maybe did you forget that activity_main.xml has the function onClick with that it starts the function sendChannel1. That was my problem and after fixing that my code worked fine.

@manel118
Copy link

manel118 commented Jun 7, 2023

This project works on its own but when I add the code to my existing project and click the button NOTHING happens! Idk why. No error, just nothing happens. I'm so confused.

Do you have everything right in your code? Maybe did you forget that activity_main.xml has the function onClick with that it starts the function sendChannel1. That was my problem and after fixing that my code worked fine.

i found the problem , it was that i didn't put name=.app in the manifest so the channels weren't created in the first place
thank you for responding

@aspen994
Copy link

It doens't work for me I don't have to:
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
and I think that is a probllem

@tomleejumah
Copy link

on latest Versions you have to add this permission in the manifest

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment