2012-12-27 31 views
3

我有一个动作通过安卓:点击动作(如呼叫)

uri = Uri.parse("tel:" + address); 
Intent intent = new Intent(Intent.ACTION_DIAL); 
intent.setData(uri); 
PendingIntent pd = PendingIntent.getActivity(context, 0,intent, 
     PendingIntent.FLAG_UPDATE_CURRENT); 
notif.addAction(R.drawable.ic_menu_call, "Call", pd); 

拨一个号码,但问题是,我不知道以后取消通知

如何/时调用通知管理器的manager.cancel()功能

,以便在点击通话动作时消除通知!

+0

通过管理器 – Yahor10

+0

处理手机状态广播动作和通话通知可能提供示例代码?对于上面的 – Daksh

回答

0

请参阅Android READ PHONE STATE? - 关于手机状态。

case TelephonyManager.CALL_STATE_RINGING: 
    notificationManager = (NotificationManager) context 
       .getSystemService(Context.NOTIFICATION_SERVICE); 
     notificationManager.cancel(100); // cancel notification by ID 
        break; 

//建立您的通知。

intent notificationIntent = new Intent(context, 
        YourPhoneActivity.class); 
      notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 
        | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
      PendingIntent intent = PendingIntent.getActivity(context, 0, 
        notificationIntent, 0); 

      Bitmap bm = BitmapFactory.decodeResource(context.getResources(), 
        iconLarge); 
      NotificationCompat.Builder builder = new NotificationCompat.Builder(
        context).setSmallIcon(iconSmall).setLargeIcon(bm) 
        .setContentTitle(title).setContentText(message) 
        .setAutoCancel(false).setContentIntent(intent).setWhen(when) 
        .setTicker(message); 
      builder.getNotification(); 
+0

,我将不得不开展一项活动,对吧?我希望通知在没有开始任何创建phonestatelistener的活动的情况下被解雇。 只需:接收通知 - >点击通话 - >打开手机应用程序,并关闭通知。 任何其他方式像广播接收器? – Daksh

+0

首先 - 你应该在某处创建通知(活动,服务) – Yahor10

+0

我在BroadcastReceiver内部创建通知。是不是有一种方法来注册一个拨号意图接收器或什么可以简单地启动拨号意图发送时? 或者任何其他不涉及单独活动的启动方式,或者是在后台运行的服务,这样的小任务! – Daksh