2012-12-27 52 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