我正在尝试以编程方式从状态栏中清除未接来电通知,但无法实现这一点。我将不胜感激。
编辑:似乎SDK不允许我直接这样做。你们能建议我任何解决方法吗?谢谢!
我正在尝试以编程方式从状态栏中清除未接来电通知,但无法实现这一点。我将不胜感激。
编辑:似乎SDK不允许我直接这样做。你们能建议我任何解决方法吗?谢谢!
您只能删除Notification
您自己提出的。您不能删除Notification
由另一个应用程序引发的。对不起!
这可以帮助你。尤其是这一段可能包括您正在寻找的内容;
要在用户从通知窗口中选择状态栏通知时清除它,请将FLAG_AUTO_CANCEL
标志添加到您的通知中。您也可以使用 手动清除它cancel(int)
,将通知 ID 传递给它,或者使用 清除所有通知cancelAll()
。
实现您想要的唯一“合法”但极其丑陋且通常无用的方法是将通话记录显示给用户。我的意思是字面上的展示(变得视觉化,获得焦点)。如果您想这样做,请按以下步骤操作:
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;
}
这种混乱背后的原因是负责呼叫记录的应用程序使用缓存值。您需要以某种方式通知这些应用程序呼叫日志已更改(可见意味着也已更改)并且应该对其进行更新。如果所有设备上的所有此类应用程序都能接收广播以进行刷新,那就太好了,但据我所知,情况并非如此。