如何清除状态栏中的未接来电通知

时间:2011-11-20 23:05:47

标签: java android android-sdk-2.3 android-notifications android-notification-bar

我正在尝试以编程方式清除状态栏中的未接来电通知,但无法实现此目的。我将不胜感激。

编辑: 似乎SDK不允许我直接这样做。你们能告诉我任何解决方法吗? 谢谢!

3 个答案:

答案 0 :(得分:4)

您只能删除自己筹集的Notification。您无法删除其他应用程序引发的Notification。遗憾!

答案 1 :(得分:0)

This可以帮到你。特别是这一段可能包括你要找的东西;

要在用户从通知窗口中选择状态栏通知时清除状态栏通知,请将FLAG_AUTO_CANCEL标记添加到通知中。您也可以使用cancel(int)手动清除它,向其传递通知ID,或使用cancelAll()清除所有通知。

答案 2 :(得分:0)

唯一的"合法"但是非常难看并且通常无用的方式来实现你想要的是向用户显示呼叫记录。我的意思是字面上显示(变得视觉,获得焦点)。如果你想这样做,请按照以下方式进行:

public static boolean showCallLog(Context context)
{
    try
    {
        Intent showCallLog = new Intent();
        showCallLog.setAction(Intent.ACTION_VIEW);
        showCallLog.setType(android.provider.CallLog.Calls.CONTENT_TYPE);
        context.startActivity(showCallLog);
        return true;
    }
    catch (Exception e)
    {
        Log.d("Couldn't show call log.", e.getMessage());
    }
    return false;
}

这种混乱背后的原因是负责呼叫记录的应用程序使用缓存值。您需要以某种方式通知那些呼叫日志已更改的应用程序(看到的方式也已更改)并且应该更新它。如果所有设备上的所有此类应用程序都会收到广播以便刷新,那将是很好的,但据我所知,情况并非如此。