0

我试图通过编程从状态栏中清除未接来电通知,但无法实现此目的。我会感谢任何帮助。如何清除状态栏中的未接来电通知

编辑: 似乎像SDK不让我直接做。你们可以向我推荐任何解决方法吗? 谢谢!

回答

4

您只能删除自己抚养的Notification。您不能删除由另一个应用程序引发的Notification。抱歉!

0

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

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

+0

可以,我想清除系统/手机应用程序生成的未接电话通知。我想这对我不起作用,谢谢你的回复。 – Aleyna

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; 
} 

这个烂摊子背后的原因是,应用程式负责呼叫记录使用的缓存值的事实。您需要以某种方式通知那些呼叫日志已更改的应用程序(看起来意味着已更改),并且应更新它。如果所有设备上的所有这些应用程序都会收到广播以刷新,那将会很不错,但据我所知,情况并非如此。