如何单击未接来电图标以打开系统未接来电UI?

时间:2014-07-04 07:55:39

标签: android

我可以使用以下代码显示未接来电的通知图标,我希望点击图标打开系统未接来电UI,我该怎么办?谢谢!

目前,如果删除评论,我可以打开ui.CallerMain.class用户界面。

顺便说一句,在系统未接来电用户界面中,未接来电就列在那里。

  private void ShowMissCallNotification(Context myContext,String myContentText) {

    NotificationManager notificationManager = (NotificationManager) myContext.getSystemService(android.content.Context.NOTIFICATION_SERVICE);

    Notification notification = new Notification(android.R.drawable.sym_call_missed,
                                    myContext.getString(R.string.app_name), 
                                    System.currentTimeMillis());

    notification.flags |= Notification.FLAG_ONGOING_EVENT;
    notification.flags |= Notification.FLAG_NO_CLEAR; 

    CharSequence contentTitle= "Title"; 
    CharSequence contentText =myContentText; 

    //Intent notificationIntent = new Intent(myContext, ui.CallerMain.class); 
    //PendingIntent contentItent = PendingIntent.getActivity(myContext, 0,  notificationIntent, 0);

    //notification.setLatestEventInfo(myContext, contentTitle, contentText,contentItent);
    notificationManager.notify(NotificationID, notification);
}

1 个答案:

答案 0 :(得分:3)

将Pending Intent设置为将触发通话记录的通知。

首先使用“呼叫记录”

创建意图
Intent resultIntent = new Intent();
resultIntent.setAction(Intent.ACTION_VIEW);
resultIntent.setType(CallLog.Calls.CONTENT_TYPE);

然后获取PendingIntent

PendingIntent resultPendingIntent =
    PendingIntent.getActivity(
    this,
    0,
    resultIntent,
    PendingIntent.FLAG_UPDATE_CURRENT
    );

然后将PendingIntent设置为通知构建器

NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setSmallIcon()
.setContentTitle()
.setContentText()
.setContentIntent(resultPendingIntent);

notificationManager.notify(id, builder.build());

现在点击通知将打开通话记录。

更新:如果您按照上面的答案创建了Intent,那么您的代码段中注释掉的代码将会正常工作。但请注意,不推荐使用您创建通知的方法。将来使用支持库中的NotificationCompat类。