如何解决如何使用 Android Studio 发送具有不同内容文本的本地自动每日推送通知并在通知单击时打开不同的活动
以下代码与日常警报管理器完美配合,但我想显示不同的内容文本以每天打开不同的活动,除设置和联系页面外,我共有 7 个活动。所以我的应用程序向我的用户发送应用内自动本地推送通知,当用户点击该通知时,该通知应该每天打开一个不同的活动,并且应该重复。我用谷歌搜索但没有找到正确的一个,找到了最接近的一个,但无法理解this guide如何使用我的应用程序。
MainActivity.java
private void INAPPDAYNOTIFY() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,19);
calendar.set(Calendar.MINUTE,30);
calendar.set(Calendar.SECOND,0);
if (calendar.getTime().compareTo(new Date()) < 0) calendar.add(Calendar.HOUR_OF_DAY,0);
Intent intent = new Intent(getApplicationContext(),NotificationReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),intent,PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
if (alarmManager != null) {
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
}
}
NotificationReceiver.java
public class NotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context,Intent intent) {
NotificationHelper notifHelper = new NotificationHelper(context);
notifHelper.createNotification();
}
}
NotificationHelper.java
private Context mContext;
private static final String IN_APP_NOTIFICATION_ID = "10001";
NotificationHelper(Context context) {
mContext = context;
}
void createNotification() {
Intent i = new Intent(mContext,MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent resultPendingIntent = PendingIntent.getActivity(mContext,i,PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext);
builder.setSmallIcon(R.drawable.app_icon);
builder.setContentTitle("Android Programming")
.setStyle(new NotificationCompat.BigTextStyle()
.bigText("Get simple and easy Android coding for your best apps") //HERE I WANNA SEND DIFFERENT TEXT DAILY FOR DIFFERENT ACTIVITY
)
.setAutoCancel(true)
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
.setContentIntent(resultPendingIntent)
.setPriority(Notification.PRIORITY_HIGH);
NotificationManager mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
int important = NotificationManager.IMPORTANCE_HIGH;
NotificationChannel notifChannel = new NotificationChannel(IN_APP_NOTIFICATION_ID,"IN_APP_NOTIFICATION",important);
Uri notificationSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SPEECH)
.build();
notifChannel.enableLights(true);
notifChannel.setLightColor(Color.WHITE);
notifChannel.enableVibration(true);
notifChannel.setVibrationPattern(new long[]{100,200,300,400,500,400});
assert mNotificationManager != null;
builder.setChannelId(IN_APP_NOTIFICATION_ID);
mNotificationManager.createNotificationChannel(notifChannel);
}
assert mNotificationManager != null;
mNotificationManager.notify(0,builder.build());
}
请帮助我并提前感谢..
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。