0

プログラムでステータスバーから不在着信通知をクリアしようとしていますが、これを達成できませんでした。どんな助けにも感謝します。

編集: SDK では、直接それを行うことはできないようです。回避策を教えてもらえますか?ありがとう!

4

3 に答える 3

4

Notification自分で上げた a のみを削除できます。Notification別のアプリケーションによって発生したを削除することはできません。ごめん!

于 2011-11-20T23:16:38.693 に答える
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;
}

この混乱の背後にある理由は、通話ログを担当するアプリがキャッシュされた値を使用するという事実です。Call Log が変更されたこと (見た場合も変更されたことを意味します) と、それを更新する必要があることを何らかの方法でこれらのアプリに通知する必要があります。すべてのデバイス上のすべてのアプリが更新のためにブロードキャストを受信するとよいのですが、私の知る限り、そうではありません。

于 2014-10-25T15:01:21.487 に答える
0

これはあなたを助けることができます。特にこの段落には、探しているものが含まれている場合があります。

ユーザーが通知ウィンドウから選択したときにステータス バー通知をクリアするには、通知にFLAG_AUTO_CANCELフラグを追加します。を使用して手動でクリアすることもできます。cancel(int)通知 ID を渡すか、すべての通知を でクリアしますcancelAll()

于 2011-11-21T00:33:00.290 に答える