Articles of android notifications

如何检查我的应用是否允许显示通知

在Android设置中,如果用户不愿意,可以关闭通知。 那么是否有任何类似isNotificationAllowed()检查的方法是否允许我的应用程序显示通知? 以及如何打开android设置页面来引导我的用户打开通知?

将Drawable或Bitmap设置为图标在Android中的通知中

我从服务器下载图像作为位图并将其转换为drawable现在我想使用这个drawable作为通知图标。 但我无法做到这一点。 这是我的代码: Notification notification = new NotificationCompat.Builder(context) .setContentTitle(title) .setContentText(message) .setContentIntent(intent) .setSmallIcon(bitmap) .setWhen(when) .build(); 但是icon是一个Resources int值,所以当我使用它时会出错。 任何帮助 编辑: 现在我更新我的代码,现在我这样做: Notification notification = new NotificationCompat.Builder(context) .setContentTitle(title) .setContentText(message) .setContentIntent(intent) .setSmallIcon(icon) .setLargeIcon(bitmap) .setWhen(when) .build(); 但它左侧有大图标,右侧有小图标。 我不希望这样,为此我删除setSmallIcon行并运行我的代码,但它没有显示通知

带有按钮的Android通知

我正在尝试用2个按钮发出通知: 一个人带我回到活动 另一个关闭它 有没有人知道如何捕捉按钮点击事件(请记住活动暂停)?

如何实现像truecaller这样的对话框

我正在尝试实现类似于真正的来电者的应用程序,当电话响铃使用广播接收器并打开MyCustomDialog活动时,我能够获取电话号码 这是我的接收器类,通过它我可以获得呼叫开始或结束的呼叫状态。 在这里,我制作了一些我在CallReceiver.java中使用的方法 PhonecallReceiver.java import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.TelephonyManager; import java.util.Date; public abstract class PhonecallReceiver extends BroadcastReceiver { private static int lastState = TelephonyManager.CALL_STATE_IDLE; private static Date callStartTime; private static boolean isIncoming; private static String savedNumber; @Override public void onReceive(Context context, Intent intent) { try { if (intent.getAction().equals(“android.intent.action.NEW_OUTGOING_CALL”)) { savedNumber = intent.getExtras().getString(“android.intent.extra.PHONE_NUMBER”); […]

更改通知上的操作按钮

我有一个通知,我试图通过重用相同的Notification Builder来更新,但是没有办法清除按钮,你只能调用addAction 。 不使用相同的Builder会导致通知闪烁,这是不可取的。 这有什么解决方案吗? 我正在使用v4支持库中的NotificationCompat 。

Android 5.0中的AudioManager.setRingerMode()替代方案(API 21)

我使用AudioManager.setRingerMode()来处理我的应用程序中的设备卷: AudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)关闭振动和声音。 AudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE)关闭声音并打开振动。 AudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL)打开声音并打开振动。 换句话说,我能够控制设备音量并达到所有“模式”。 但是,仅使用AudioManager.setRingerMode无法在Android 5.0中处理所有设备音量模式。 根据文件 : 将设备设置为RINGER_MODE_SILENT会导致设备进入新的优先级模式。 如果将设置设置为RINGER_MODE_NORMAL或RINGER_MODE_VIBRATE,设备将保留优先模式。 如何处理Android 5.0中的所有模式(无,优先级振动,优先级声音,所有振动,所有声音)设备音量?

允许在调用stopForeground后取消通知(false)

我有一个媒体服务,它使用startForeground()在播放开始时显示通知。 播放时有暂停/停止按钮,暂停时有播放/停止按钮。 NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); // setup… Notification n = mBuilder.build(); if (state == State.Playing) { startForeground(mId, n); } else { stopForeground(false); mNotificationManager.notify(mId, n); } 这里的问题是当我显示/更新处于暂停状态的通知时,应该允许您将其删除。 mBuilder.setOngoing(false)似乎没有效果,因为之前的startForeground会覆盖它。 调用stopForeground(true); 使用相同的代码按预期工作,但通知会在销毁和重新创建时闪烁。 有没有办法“更新”从startForeground创建的通知,以便在调用stop后将其删除? 编辑:根据要求,这是创建通知的完整代码。 只要播放或暂停服务,就会调用createNotification。 private void createNotification() { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle(“No Agenda”) .setContentText(“Live stream”); if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { if (state […]

JellyBean上的NavUtils.shouldUpRecreateTask失败

我有一个应用程序,它会在选择启动活动时发出通知。 根据Android文档,我可以使用NavUtils.shouldUpRecreateTask来检查活动是否已直接启动(即来自通知)或通过正常活动堆栈。 但它给出了错误的答案。 我在JellyBean上测试它,但使用支持库。 基本上,即使从通知中启动了活动,shouldUpRecreateTask也总是返回false。 关于为什么uppRecreateTask未能给出正确答案的任何想法?

Parse.com – Android自定义推送通知声音

我知道Android中的推送通知声音可以自定义(在iOS已经正常工作)。 但是,我没有在文档中看到任何引用,只有iOS自定义声音。 我在Parse.com论坛上看到大约一年前要求提供这样的function,并回答说它“在桌面上”。 关于那个的任何更新? 如果没有“官方”支持,任何已知的解决方法,以使其工作?

如何将应用程序图标设置为通知抽屉中的通知图标

如图所示…… 我收到了通知图标(左侧是红色)。 但我需要显示黑色箭头所示的应用程序图标 public void notify(View view){ notification.setSmallIcon(R.drawable.ic_stat_name); notification.setTicker(“Welcome to ****”); notification.setWhen(System.currentTimeMillis()); notification.setContentTitle(“abcd”); notification.setContentText(“abcd”); Intent intent = new Intent(this, home.class); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); notification.setContentIntent(pendingIntent); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.notify(uniqueID, notification.build()); }