-
-
Save codinginflow/33e2ef8270892acca1ce7cab955ee3d3 to your computer and use it in GitHub Desktop.
<?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); | |
} | |
} |
NICE!
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.
DequeueBuffer i have this in the log instead of the notification
pleaaase help
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.
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
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
on latest Versions you have to add this permission in the manifest
thanks