-
Star
(244)
You must be signed in to star a gist -
Fork
(57)
You must be signed in to fork a gist
-
-
Save BrandonSmith/6679223 to your computer and use it in GitHub Desktop.
| <?xml version="1.0" encoding="utf-8"?> | |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
| package="com.cards.notification"> | |
| <uses-sdk | |
| android:minSdkVersion="17" | |
| android:targetSdkVersion="17" /> | |
| <application | |
| android:allowBackup="true" | |
| android:icon="@drawable/ic_launcher" | |
| android:label="@string/app_name" | |
| android:theme="@style/AppTheme" > | |
| <activity | |
| android:name="com.cards.notification.MainActivity" | |
| android:label="@string/app_name" > | |
| <intent-filter> | |
| <action android:name="android.intent.action.MAIN" /> | |
| <category android:name="android.intent.category.LAUNCHER" /> | |
| </intent-filter> | |
| </activity> | |
| <receiver android:name=".NotificationPublisher" /> | |
| </application> | |
| </manifest> |
| <menu xmlns:android="http://schemas.android.com/apk/res/android"> | |
| <item android:id="@+id/action_5" | |
| android:title="5 seconds" | |
| android:showAsAction="never" /> | |
| <item android:id="@+id/action_10" | |
| android:title="10 seconds" | |
| android:showAsAction="never" /> | |
| <item android:id="@+id/action_30" | |
| android:title="30 seconds" | |
| android:showAsAction="never" /> | |
| </menu> |
| package com.cards.notification; | |
| import android.app.AlarmManager; | |
| import android.app.Notification; | |
| import android.app.PendingIntent; | |
| import android.content.Context; | |
| import android.content.Intent; | |
| import android.os.Bundle; | |
| import android.app.Activity; | |
| import android.os.SystemClock; | |
| import android.view.Menu; | |
| import android.view.MenuItem; | |
| public class MainActivity extends Activity { | |
| @Override | |
| protected void onCreate(Bundle savedInstanceState) { | |
| super.onCreate(savedInstanceState); | |
| setContentView(R.layout.activity_main); | |
| } | |
| @Override | |
| public boolean onCreateOptionsMenu(Menu menu) { | |
| // Inflate the menu; this adds items to the action bar if it is present. | |
| getMenuInflater().inflate(R.menu.main, menu); | |
| return true; | |
| } | |
| @Override | |
| public boolean onOptionsItemSelected(MenuItem item) { | |
| switch (item.getItemId()) { | |
| case R.id.action_5: | |
| scheduleNotification(getNotification("5 second delay"), 5000); | |
| return true; | |
| case R.id.action_10: | |
| scheduleNotification(getNotification("10 second delay"), 10000); | |
| return true; | |
| case R.id.action_30: | |
| scheduleNotification(getNotification("30 second delay"), 30000); | |
| return true; | |
| default: | |
| return super.onOptionsItemSelected(item); | |
| } | |
| } | |
| private void scheduleNotification(Notification notification, int delay) { | |
| Intent notificationIntent = new Intent(this, NotificationPublisher.class); | |
| notificationIntent.putExtra(NotificationPublisher.NOTIFICATION_ID, 1); | |
| notificationIntent.putExtra(NotificationPublisher.NOTIFICATION, notification); | |
| PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); | |
| long futureInMillis = SystemClock.elapsedRealtime() + delay; | |
| AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); | |
| alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureInMillis, pendingIntent); | |
| } | |
| private Notification getNotification(String content) { | |
| Notification.Builder builder = new Notification.Builder(this); | |
| builder.setContentTitle("Scheduled Notification"); | |
| builder.setContentText(content); | |
| builder.setSmallIcon(R.drawable.ic_launcher); | |
| return builder.build(); | |
| } | |
| } |
| package com.cards.notification; | |
| import android.app.Notification; | |
| import android.app.NotificationManager; | |
| import android.content.BroadcastReceiver; | |
| import android.content.Context; | |
| import android.content.Intent; | |
| public class NotificationPublisher extends BroadcastReceiver { | |
| public static String NOTIFICATION_ID = "notification-id"; | |
| public static String NOTIFICATION = "notification"; | |
| public void onReceive(Context context, Intent intent) { | |
| NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE); | |
| Notification notification = intent.getParcelableExtra(NOTIFICATION); | |
| int id = intent.getIntExtra(NOTIFICATION_ID, 0); | |
| notificationManager.notify(id, notification); | |
| } | |
| } |
Not working on After android 10 update.
Did you find any solution
After killing application. Notifications not triggering.
Did u find any solution
Not working on After android 10 update.
make sure to add notification channel for api level greater than Android 7
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
String channelName = "My Background Service";
NotificationChannel chan = new NotificationChannel("com.offline.english.dictionary.speech.translator",
channelName, NotificationManager.IMPORTANCE_LOW);
chan.setLightColor(Color.BLUE);
chan.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
notificationManager.createNotificationChannel(chan);
}
notificationManager.notify(2, notification);
also add this to get notification funtion
Notification.Builder builder = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
builder = new Notification.Builder(this,
"com.offline.english.dictionary.speech.translator");
}
else {
builder = new Notification.Builder(this);
}
Thanks !
notification not received after kill application Android 10 any one help..?
@BilalZurmati - thank you! This was a big help.
Thankyou for your shareing
After killing application. Notifications not triggering.