コード例 #1
1
  private void noticeNewBlog(Context context) {
    NotificationManager notiManager =
        (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    notiManager.cancel(Constants.NOTIFICATION_NEW_MICRO_BLOG); // 先清除上一次提醒;

    Intent intent = new Intent();
    // 粉丝
    if (entity.getContentType() == Skeleton.TYPE_MORE) {
      intent.setAction("com.shejiaomao.weibo.SOCIAL_GRAPH");
      intent.addCategory("android.intent.category.DEFAULT");
      intent.putExtra("SOCIAL_GRAPH_TYPE", SocialGraphTask.TYPE_FOLLOWERS);
      intent.putExtra("USER", account.getUser());
    } else {
      intent.setAction("com.shejiaomao.weibo.MAIN");
      intent.addCategory("android.intent.category.DEFAULT");
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    }
    intent.putExtra("CONTENT_TYPE", entity.getContentType());
    intent.putExtra("ACCOUNT", account);

    Notification notification = new Notification();
    notification.icon = R.drawable.icon_notification;
    notification.flags = Notification.FLAG_AUTO_CANCEL;
    notification.tickerText = entity.getTickerText();

    if (sheJiaoMao.isVibrateNotification()) {
      notification.defaults |= Notification.DEFAULT_VIBRATE;
    }
    if (sheJiaoMao.isRingtoneNotification()) {
      if (StringUtil.isNotEmpty(sheJiaoMao.getRingtoneUri())) {
        notification.sound = Uri.parse(sheJiaoMao.getRingtoneUri());
      } else {
        notification.defaults |= Notification.DEFAULT_SOUND;
      }
    }

    if (sheJiaoMao.isFlashingLEDNotification()) {
      notification.ledARGB = Color.GREEN;
      notification.ledOffMS = 1000;
      notification.ledOnMS = 1000;
      notification.flags |= Notification.FLAG_SHOW_LIGHTS;
    }

    int requestCode = account.getAccountId().intValue() * 100 + entity.getContentType();
    PendingIntent pendingIntent =
        PendingIntent.getActivity(context, requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    notification.setLatestEventInfo(
        context, entity.getContentTitle(), entity.getContentText(), pendingIntent);

    notiManager.notify(requestCode, notification);
  }
コード例 #2
0
  private void showNotification(String title, String note, boolean isTaskComplete) {

    Notification notification =
        new Notification(R.drawable.liltomato, null, System.currentTimeMillis());
    notification.flags = Notification.FLAG_ONGOING_EVENT;

    if (isTaskComplete) {

      notification = new Notification(R.drawable.liltomato_red, null, System.currentTimeMillis());
      notification.flags = Notification.FLAG_ONGOING_EVENT;
      String ringtone = taskDatabaseMap.getPreferences().getRingtone();
      if (ringtone == null) {
        ringtone =
            "android.resource://"
                + getApplication().getPackageName()
                + "/"
                + R.raw.freesoundprojectdotorg_32568__erh__indian_brass_pestle;
      }

      notification.sound = Uri.parse(ringtone);

      if (taskDatabaseMap.getPreferences().notifyPhoneVibrate()) {
        notification.vibrate = new long[] {0, 100, 200, 300};
      }

      notification.tickerText = title;
      notification.defaults |= Notification.DEFAULT_LIGHTS;
    }

    PendingIntent contentIntent =
        PendingIntent.getActivity(this, 0, new Intent(this, TaskBrowserActivity.class), 0);
    notification.setLatestEventInfo(this, title, note, contentIntent);
    notificationManager.notify(NOTIFICATION_ID, notification);
  }
コード例 #3
0
  private void createNotification(String title, String description, int tag) {
    NotificationManager notificationManager =
        (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    Intent intent = new Intent(this, NotificationActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.putExtra("tag", counter);
    PendingIntent pIntent =
        PendingIntent.getActivity(this, counter, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    // Build notification
    // Actions are just fake
    NotificationCompat.Builder notificationBuilder =
        new NotificationCompat.Builder(this)
            .setContentTitle(title)
            .setContentText(description)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentIntent(pIntent);
    notificationBuilder.setContentIntent(pIntent);
    Notification notification = notificationBuilder.build();
    // Hide the notification after its selected
    // noti.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.flags |= Notification.DEFAULT_VIBRATE;
    notification.flags |= Notification.DEFAULT_SOUND;
    notification.flags |= Notification.DEFAULT_LIGHTS;
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(tag, notification);
  }
コード例 #4
0
  @Override
  public void onCreate() {

    HunyDewZLogger.startTrace("fulfillerf");

    super.onCreate();

    fulfillerLocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    LocationListener fulfillerLocListener = new HunyDooLocationListener();

    // if (LocationManager.GPS_PROVIDER!=null)
    //   hdLocProvider = LocationManager.GPS_PROVIDER;

    Criteria hdCrit = new Criteria();
    hdCrit.setAccuracy(Criteria.ACCURACY_COARSE);
    hdLocProvider = fulfillerLocManager.getBestProvider(hdCrit, true);
    // ms  // meter
    fulfillerLocManager.requestLocationUpdates(hdLocProvider, 60000, 100, fulfillerLocListener);

    //	    Location currentLocation = fulfillerLocManager.getLastKnownLocation(hdLocProvider);

    // Instantiate the notification
    int iconReached =
        R.drawable.push_pin; // TBD - eventually this will be small size launcher Icon
    String textReachedLoca = getResources().getText(R.string.notiMesg).toString();
    long whenReached = System.currentTimeMillis();
    hdLocaReachedNotification = new Notification(iconReached, textReachedLoca, whenReached);

    hdLocaReachedNotification.defaults |= Notification.DEFAULT_SOUND;
    hdLocaReachedNotification.defaults |= Notification.DEFAULT_LIGHTS;
    hdLocaReachedNotification.defaults |= Notification.DEFAULT_VIBRATE;
    hdLocaReachedNotification.audioStreamType = AudioManager.STREAM_NOTIFICATION;

    // Repeat audio until the user responds
    hdLocaReachedNotification.flags |= Notification.FLAG_INSISTENT;

    // Flashing Lights
    hdLocaReachedNotification.ledARGB = 0xff00ff00;
    hdLocaReachedNotification.ledOnMS = 300;
    hdLocaReachedNotification.ledOffMS = 1000;
    hdLocaReachedNotification.flags |= Notification.FLAG_SHOW_LIGHTS;

    // define the notification's expanded message and intent
    CharSequence contentTitle = getResources().getText(R.string.notiTitle);
    CharSequence contentText = getResources().getText(R.string.notiMesg);
    Intent notificationIntent = new Intent(this, HunyDewAAStartsHere.class);

    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

    hdLocaReachedNotification.setLatestEventInfo(
        getApplicationContext(), contentTitle, contentText, contentIntent);

    // now start the service
    startFulfillerService();

    if (MAIN_ACTIVITY != null) {

      Log.i(getClass().getSimpleName(), "MyService Started");
    }
  }
コード例 #5
0
  private void createNotification(
      String title, String description, int notificationId, int smallIcon) {
    Log.d(
        TAG, "createNotification() creating notification [notificationId:" + notificationId + "]");
    NotificationManager notificationManager =
        (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    // CREATE THE INTENT TO START WHEN THE NOTIFICATION IS CLICKED
    Intent intent = new Intent(this, NotificationActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.putExtra(NotificationActivity.EXTRA_KEY1, "today is the day (" + notificationId + ")");
    intent.putExtra(NotificationUtil.NOTIFICATION_ID, notificationId);

    // CREATE THE PENDING INTENT
    PendingIntent pIntent =
        PendingIntent.getActivity(this, counter, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    // Build notification
    // Actions are just fake
    NotificationCompat.Builder notificationBuilder =
        new NotificationCompat.Builder(this)
            .setContentTitle(title)
            .setContentText(description)
            .setSmallIcon(smallIcon)
            .setContentIntent(pIntent);
    Notification notification = notificationBuilder.build();
    // Hide the notification after its selected
    // noti.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.flags |= Notification.DEFAULT_VIBRATE;
    notification.flags |= Notification.DEFAULT_SOUND;
    notification.flags |= Notification.DEFAULT_LIGHTS;
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(notificationId, notification);
  }
コード例 #6
0
  /** Show a notification informing the user when a deck is ready to be used */
  private void showNotification(String deckTitle, String deckFilename) {
    NotificationManager mNotificationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    Resources res = getResources();

    // Set the icon, scrolling text and timestamp
    Notification notification =
        new Notification(
            R.drawable.anki, res.getString(R.string.download_finished), System.currentTimeMillis());

    String deckPath = mDestination + "/" + deckFilename + ".anki";
    //        Intent loadDeckIntent = StudyOptions.getLoadDeckIntent(this, deckPath);
    // The PendingIntent to launch our activity if the user selects this notification
    //        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, loadDeckIntent, 0);

    // Set the info for the views that show in the notification panel
    //        notification.setLatestEventInfo(this, deckTitle,
    // res.getString(R.string.deck_downloaded), contentIntent);

    // Clear the notification when the user selects it
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    // Vibrate
    notification.defaults |= Notification.DEFAULT_VIBRATE;

    // Show a blue light
    notification.ledARGB = 0xff0000ff;
    notification.ledOnMS = 500;
    notification.ledOffMS = 1000;
    notification.flags |= Notification.FLAG_SHOW_LIGHTS;

    // Send the notification
    Log.i(AnkiDroidApp.TAG, "Sending notification...");
    mNotificationManager.notify(getNextNotificationId(), notification);
  }
コード例 #7
0
 private void setFlag(int mask, boolean value) {
   if (value) {
     mNotification.flags |= mask;
   } else {
     mNotification.flags &= ~mask;
   }
 }
コード例 #8
0
  private void sendNotification() {

    NotificationManager mNotificationManager =
        (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
    Intent mIntent = new Intent(this, NotificationExampleActivity.class);

    PendingIntent contentIntent =
        PendingIntent.getActivity(this, 1, mIntent, PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationCompat.Builder mBuilder;

    mBuilder =
        new NotificationCompat.Builder(this)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle("This is title")
            .setStyle(new NotificationCompat.BigTextStyle().bigText("This Description"))
            .setContentText("This is sort desc");
    mBuilder.setContentIntent(contentIntent);
    Notification notification = mBuilder.build();

    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.defaults |= Notification.DEFAULT_LIGHTS;
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    notification.defaults |= Notification.DEFAULT_SOUND;
    notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE;

    mNotificationManager.notify(120, notification);
  }
コード例 #9
0
 private void setFlag(int paramInt, boolean paramBoolean) {
   Notification localNotification;
   if (!paramBoolean) {
     localNotification = this.mNotification;
     localNotification.flags &= (paramInt ^ 0xFFFFFFFF);
   } else {
     localNotification = this.mNotification;
     localNotification.flags = (paramInt | localNotification.flags);
   }
 }
コード例 #10
0
  @Override
  public void onCreate() {
    super.onCreate();

    // Create MediaPlayer
    __mediaPlayer = new MediaPlayer();

    Log.i("AudioService", "Created the __mediaPlayer.");

    // When called OnCompletionListener().
    __mediaPlayer.setOnCompletionListener(
        new OnCompletionListener() {
          public void onCompletion(MediaPlayer arg0) {
            __state = 0;
          }
        });

    __mediaPlayer.setOnSeekCompleteListener(
        new OnSeekCompleteListener() {
          @Override
          public void onSeekComplete(MediaPlayer mediaPlayer) {
            Log.d(
                "VID_PLAYER",
                "Seek Complete. Current Position: " + mediaPlayer.getCurrentPosition());
            mediaPlayer.start();
          }
        });

    IntentFilter receiverFilter = new IntentFilter();
    receiverFilter.addAction(Intent.ACTION_POWER_CONNECTED);
    registerReceiver(__musicReceiver, receiverFilter);

    NotificationManager noficicationManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    NotificationCompat.Builder builder =
        new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.smile)
            .setContentTitle("Playing the music.")
            .setContentText("NiceMusicApp");

    Intent intent = new Intent(this, com.web2korea.nicemusicapp.MusicListActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
    builder.setContentIntent(pendingIntent);
    Notification notification = builder.build();

    notification.flags = Notification.FLAG_ONLY_ALERT_ONCE;
    // notification.flags = Notification.FLAG_ONGOING_EVENT;
    notification.flags = Notification.FLAG_AUTO_CANCEL;

    noficicationManager.notify(NOTIFICATION_REMOVE, notification);
  }
コード例 #11
0
 private void setFlag(int i, boolean flag)
 {
     if (flag)
     {
         Notification notification = mNotification;
         notification.flags = notification.flags | i;
         return;
     } else
     {
         Notification notification1 = mNotification;
         notification1.flags = notification1.flags & ~i;
         return;
     }
 }
コード例 #12
0
ファイル: AlarmReceiver.java プロジェクト: cheenlie/DeskClock
  private void updateNotification(Context context, Alarm alarm, int timeout) {
    NotificationManager nm = getNotificationManager(context);

    // If the alarm is null, just cancel the notification.
    if (alarm == null) {
      if (Log.LOGV) {
        Log.v("Cannot update notification for killer callback");
      }
      return;
    }

    // Launch SetAlarm when clicked.
    Intent viewAlarm = new Intent(context, SetAlarm.class);
    viewAlarm.putExtra(Alarms.ALARM_ID, alarm.id);
    PendingIntent intent = PendingIntent.getActivity(context, alarm.id, viewAlarm, 0);

    // Update the notification to indicate that the alert has been
    // silenced.
    String label = alarm.getLabelOrDefault(context);
    Notification n = new Notification(R.drawable.stat_notify_alarm, label, alarm.time);
    n.setLatestEventInfo(
        context, label, context.getString(R.string.alarm_alert_alert_silenced, timeout), intent);
    n.flags |= Notification.FLAG_AUTO_CANCEL;
    // We have to cancel the original notification since it is in the
    // ongoing section and we want the "killed" notification to be a plain
    // notification.
    nm.cancel(alarm.id);
    nm.notify(alarm.id, n);
  }
コード例 #13
0
  public void makeNotification(
      String title, String content, int extraNotificationFlag, Intent intent) {
    int notificationId = 0;
    int notificationIcon = 0;
    if ((extraNotificationFlag & Notification.FLAG_ONGOING_EVENT) != 0) {
      notificationIcon = R.drawable.icon;
      notificationId = ON_GOING_NOTIFICATION_ID;
    } else {
      notificationIcon = R.drawable.message_sent;
      notificationId = NOTIFICATION_ID;
      if (++NOTIFICATION_ID > MAX_NOTIFICATION_ID) {
        NOTIFICATION_ID = INIT_NOTIFICATION_ID;
      }
    }

    Notification newNotification =
        new Notification(notificationIcon, content, System.currentTimeMillis());
    newNotification.flags = newNotification.flags | extraNotificationFlag;

    // start the passer activity to cancel the notification
    PendingIntent correspondingIntent = PendingIntent.getActivity(context, 0, intent, 0);

    newNotification.setLatestEventInfo(context, title, content, correspondingIntent);

    notificationManager.notify(notificationId, newNotification);
  }
コード例 #14
0
 @Override
 public void onStop(DownloadTask task) throws RemoteException {
   if (mNotificationManager != null && mNotification != null) {
     mNotification.tickerText = mStopTickerText;
     mNotification.flags = Notification.FLAG_AUTO_CANCEL;
     mNotification.contentIntent = mPendingIntent;
     //			if (RecommAppsUtils.isZh()) {
     mNotification.setLatestEventInfo(
         mContext,
         mPauseText,
         mProgressText + " " + task.getAlreadyDownloadPercent() + "%",
         mPendingIntent);
     //			} else {
     //				mNotification.setLatestEventInfo(mContext, mPauseText,
     //						task.getAlreadyDownloadPercent() + "%",
     //						mPendingIntent);
     //			}
     //			mNotificationManager.notify(NOTIFY_TAG, (int) task.getId(), mNotification);
     if (mNotification.contentView != null) {
       mNotificationManager.notify(NOTIFY_TAG, (int) task.getId(), mNotification);
     }
   }
   if (task != null) {
     // add by xiedezhi
     sendBroadcastingToAppCenter(task);
   }
 }
コード例 #15
0
    //	通知センターに通知を残す(pecoriできる人がいます)
    private void notifyNearUser(HttpResponse res) throws Exception {
      String body = EntityUtils.toString(res.getEntity(), "UTF-8");
      JSONObject json = new JSONObject(body.toString());
      JSONArray nearUsers = json.getJSONArray("near_users");
      for (int i = 0; i < nearUsers.length(); i++) {
        JSONObject user = nearUsers.getJSONObject(i);
        String facebookId = user.getString("facebook_id");
        String name = user.getString("name");

        NotificationManager notificationManager =
            (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification notification =
            new Notification(
                android.R.drawable.btn_default,
                "近くに" + name + "さんがいるようです。",
                System.currentTimeMillis());
        notification.flags = Notification.FLAG_AUTO_CANCEL;

        //	Notificationが選択された場合のIntent
        Intent intent = new Intent(Intent.ACTION_VIEW);
        PendingIntent contentIntent =
            PendingIntent.getActivity(LocationDetectService.this, 0, intent, 0);
        notification.setLatestEventInfo(
            getApplicationContext(), "Pecori", "近くに" + name + "さんがいるようです。", contentIntent);
        notificationManager.notify(R.string.app_name, notification);
      }
    }
コード例 #16
0
  // 在状态栏提示分享操作
  private void showNotification(long cancelTime, String text) {
    try {
      Context app = getContext().getApplicationContext();
      NotificationManager nm =
          (NotificationManager) app.getSystemService(Context.NOTIFICATION_SERVICE);
      final int id = Integer.MAX_VALUE / 13 + 1;
      nm.cancel(id);

      long when = System.currentTimeMillis();
      Notification notification = new Notification(notifyIcon, text, when);
      PendingIntent pi = PendingIntent.getActivity(app, 0, new Intent(), 0);
      notification.setLatestEventInfo(app, notifyTitle, text, pi);
      notification.flags = Notification.FLAG_AUTO_CANCEL;
      nm.notify(id, notification);

      if (cancelTime > 0) {
        Message msg = new Message();
        msg.what = MSG_CANCEL_NOTIFY;
        msg.obj = nm;
        msg.arg1 = id;
        UIHandler.sendMessageDelayed(msg, cancelTime, this);
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
コード例 #17
0
  // send notification to Notification bar, open notification bar, will stay there,
  // but if any press, will clear all facebook notifications
  private void sendNotification(String title, String content) {
    WakeLock wl =
        pownermMgr.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "SCREEN_BRIGHT_WAKE_LOCK");
    wl.acquire(10 * 1000);

    if (orm.getNotificationVibrate()) {
      final Vibrator vib =
          (android.os.Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
      vib.vibrate(2 * 1000);
    }

    Notification notification = new Notification();
    notification.flags |= Notification.FLAG_SHOW_LIGHTS;
    notification.flags |= Notification.DEFAULT_SOUND;
    notification.ledARGB = 0xff00ff00;
    notification.ledOnMS = 500;
    notification.ledOffMS = 2000;

    if (orm.getNotificationVibrate()) {
      notification.defaults |= Notification.DEFAULT_VIBRATE;
    }

    notification.defaults |= Notification.DEFAULT_SOUND;
    notify.notifyNotifications(
        title,
        content,
        R.drawable.facebook_logo,
        Notification.FLAG_AUTO_CANCEL | Notification.FLAG_ONLY_ALERT_ONCE,
        notification);
  }
コード例 #18
0
 /**
  * This method sends a notification to NotificationManager to display an error dialog indicating
  * low disk space and launch the Installer application
  */
 private final void sendNotification() {
   if (localLOGV) Slog.i(TAG, "Sending low memory notification");
   // log the event to event log with the amount of free storage(in bytes) left on the device
   EventLog.writeEvent(EventLogTags.LOW_STORAGE, mFreeMem);
   //  Pack up the values and broadcast them to everyone
   Intent lowMemIntent =
       new Intent(
           Environment.isExternalStorageEmulated()
               ? Settings.ACTION_INTERNAL_STORAGE_SETTINGS
               : Intent.ACTION_MANAGE_PACKAGE_STORAGE);
   lowMemIntent.putExtra("memory", mFreeMem);
   lowMemIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   NotificationManager mNotificationMgr =
       (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
   CharSequence title =
       mContext.getText(com.android.internal.R.string.low_internal_storage_view_title);
   CharSequence details =
       mContext.getText(com.android.internal.R.string.low_internal_storage_view_text);
   PendingIntent intent =
       PendingIntent.getActivityAsUser(mContext, 0, lowMemIntent, 0, null, UserHandle.CURRENT);
   Notification notification = new Notification();
   notification.icon = com.android.internal.R.drawable.stat_notify_disk_full;
   notification.tickerText = title;
   notification.flags |= Notification.FLAG_NO_CLEAR;
   notification.setLatestEventInfo(mContext, title, details, intent);
   mNotificationMgr.notifyAsUser(null, LOW_MEMORY_NOTIFICATION_ID, notification, UserHandle.ALL);
   mContext.sendStickyBroadcastAsUser(mStorageLowIntent, UserHandle.ALL);
 }
コード例 #19
0
ファイル: ChatListFragment.java プロジェクト: robinvz/TeamC
    public void notify(String sender, String message, String tripid, Context context) {
      NotificationCompat.Builder mBuilder =
          new NotificationCompat.Builder(context)
              .setSmallIcon(R.drawable.ic_launcher)
              .setContentTitle(sender)
              .setContentText(message);
      // Creates an explicit intent for an Activity in your app
      Intent resultIntent = new Intent(context, ChatActivity.class);
      resultIntent.putExtra("email", sender);
      resultIntent.putExtra("message", message);
      resultIntent.putExtra("tripid", tripid);

      // The stack builder object will contain an artificial back stack for
      // the
      // started Activity.
      // This ensures that navigating backward from the Activity leads out of
      // your application to the Home screen.
      TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
      // Adds the back stack for the Intent (but not the Intent itself)
      stackBuilder.addParentStack(ChatActivity.class);
      // Adds the Intent that starts the Activity to the top of the stack
      stackBuilder.addNextIntent(resultIntent);
      PendingIntent resultPendingIntent =
          stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
      mBuilder.setContentIntent(resultPendingIntent);
      NotificationManager mNotificationManager =
          (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
      int mId = 0;
      Notification nf = mBuilder.build();
      nf.defaults = Notification.DEFAULT_ALL;
      nf.flags = Notification.FLAG_AUTO_CANCEL;

      // mId allows you to update the notification later on.
      mNotificationManager.notify(mId, nf);
    }
コード例 #20
0
  // Prepare notification data and display it.
  private void doNotification(Context context, Long messageId, Bitmap srcPhoto) {

    ChatMsgBaseInfo message = WalkArroundMsgManager.getInstance(context).getMessageById(messageId);

    if (message == null) {
      return;
    }

    ContactInfo contact =
        ContactsManager.getInstance(context).getContactByUsrObjId(message.getContact());

    Intent intent = new Intent();
    intent.setClass(context.getApplicationContext(), BuildMessageActivity.class);
    intent.putExtra(BuildMessageActivity.INTENT_RECEIVER_EDITABLE, false);
    intent.putExtra(BuildMessageActivity.INTENT_CONVERSATION_RECEIVER, message.getContact());
    intent.putExtra(BuildMessageActivity.INTENT_CONVERSATION_THREAD_ID, message.getMsgThreadId());
    intent.putExtra(BuildMessageActivity.INTENT_CONVERSATION_TYPE, message.getChatType());

    // TODO: contact should write to DB & we should crate a content provider for those contacts.
    if (contact != null) {
      intent.putExtra(BuildMessageActivity.INTENT_CONVERSATION_DISPLAY_NAME, contact.getUsername());
    }

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent contentIntent =
        PendingIntent.getActivity(
            context, (int) message.getMsgThreadId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);

    // If the contact is null, set the user name as empty.
    String displayName = (contact == null ? "" : contact.getUsername());
    message.setData(MessageUtil.getDisplayStr(context, displayName, message));
    Notification notification = new Notification();
    notification.flags = Notification.FLAG_AUTO_CANCEL;
    notification.icon = R.drawable.msg_notify_icon;

    // TODO: Add Emoji parser later.
    notification.tickerText = EmojiParser.getInstance(context).getSmileyText(message.getData());
    notification.tickerText = message.getData();

    if (Build.VERSION.SDK_INT == 19) {
      contentIntent.cancel();
      contentIntent =
          PendingIntent.getActivity(
              context, (int) message.getMsgThreadId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
    }
    notification.contentIntent = contentIntent;
    notification.contentView = new RemoteViews(context.getPackageName(), R.layout.msg_notify_panel);
    //        notification.defaults=Notification.DEFAULT_SOUND;
    initNotifyView(context, notification.contentView, message, contact, srcPhoto);
    try {
      String number = (contact == null ? DEFAULT_NOTIFICATION_ID : contact.getMobilePhoneNumber());
      int startPos = number.length() > 5 ? number.length() - 5 : 0;
      int id = Integer.parseInt(number.substring(startPos));
      NotificationManager manager =
          (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
      manager.notify(number, id, notification);
    } catch (NumberFormatException e) {
      sLogger.e("notification NumberFormatException:" + e.getMessage());
    }
  }
コード例 #21
0
 @Override
 public void onFail(DownloadTask task) throws RemoteException {
   // TODO Auto-generated method stub
   if (mContext != null && task != null) {
     if (mNotificationManager != null) {
       // 移除之前的通知
       mNotificationManager.cancel(NOTIFY_TAG, (int) task.getId());
       // 更新下载信息
       if (mShowNotification && mNotification != null) {
         mNotification.tickerText = mFailTickerText;
         mNotification.contentIntent = mPendingIntent;
         //					mNotificationRemoteViews.setTextViewText(R.id.downloadTextView, mFailText);
         //					mNotification.contentView = mNotificationRemoteViews;
         mNotification.setLatestEventInfo(
             mContext,
             mFailText,
             mProgressText + " " + task.getAlreadyDownloadPercent() + "%",
             mPendingIntent);
         mNotification.flags = Notification.FLAG_AUTO_CANCEL;
         //					mNotificationManager.notify(NOTIFY_TAG, (int) task.getId(), mNotification);
         if (mNotification.contentView != null) {
           mNotificationManager.notify(NOTIFY_TAG, (int) task.getId(), mNotification);
         }
       }
     }
   }
 }
コード例 #22
0
  /** Sets up a notification shortcut in the system bar */
  public static void setupNotification() {
    Context context = ApplicationContext.getInstance();
    String notificationService = Context.NOTIFICATION_SERVICE;
    mNotificationManager = (NotificationManager) context.getSystemService(notificationService);
    Intent notificationIntent = new Intent(context, MainFragmentActivity.class);
    PendingIntent contentIntent =
        PendingIntent.getActivity(
            context, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationCompat.Builder mBuilder;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
      mBuilder =
          new NotificationCompat.Builder(ApplicationContext.getInstance())
              .setSmallIcon(R.drawable.ic_stat_notification)
              .setContentTitle(context.getResources().getText(R.string.app_name))
              .setContentText(context.getResources().getText(R.string.go_to_app))
              .setWhen(0);
    else
      mBuilder =
          new NotificationCompat.Builder(ApplicationContext.getInstance())
              .setSmallIcon(R.drawable.ic_stat_notification)
              .setContentTitle(context.getResources().getText(R.string.app_name))
              .setContentText(context.getResources().getText(R.string.go_to_app));

    mBuilder.setContentIntent(contentIntent);
    // mId allows you to update the notification later on.
    int mId = 1;
    Notification shortcutNotification = mBuilder.build();
    shortcutNotification.flags |= Notification.FLAG_ONGOING_EVENT;
    mNotificationManager.notify(mId, shortcutNotification);

    ApplicationContext.getInstance().notificationIsShowing = true;
  }
コード例 #23
0
 @Override
 public void onCancel(DownloadTask task) throws RemoteException {
   if (task != null) {
     sendBroadcastingToAppCenter(task);
     stopAppGameNetLog(task);
     if (mNotificationManager != null) {
       if (mShowNotification && mNotification != null) {
         // 更新下载信息
         mNotification.tickerText = mCancelTickerText;
         mNotification.contentIntent = mPendingIntent;
         mNotification.flags = Notification.FLAG_AUTO_CANCEL;
         //					mNotificationManager.notify(NOTIFY_TAG, (int) task.getId(), mNotification);
         if (mNotification.contentView != null) {
           mNotificationManager.notify(NOTIFY_TAG, (int) task.getId(), mNotification);
         }
       }
     }
     String filePath = task.getSaveFilePath();
     if (TextUtils.isEmpty(filePath)) {
       return;
     }
     File saveFile = new File(filePath);
     if (saveFile.exists()) {
       saveFile.delete();
     }
   }
 }
コード例 #24
0
ファイル: OnAlarmReceiver.java プロジェクト: cyouden/cs498
  @SuppressWarnings("deprecation")
  @Override
  public void onReceive(Context ctxt, Intent intent) {
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctxt);
    boolean useNotification = prefs.getBoolean("use_notification", true);

    if (useNotification) {
      NotificationManager mgr =
          (NotificationManager) ctxt.getSystemService(Context.NOTIFICATION_SERVICE);
      Notification note =
          new Notification(
              android.R.drawable.stat_notify_chat,
              "It's time for lunch!",
              System.currentTimeMillis());
      PendingIntent i =
          PendingIntent.getActivity(ctxt, 0, new Intent(ctxt, AlarmActivity.class), 0);

      note.setLatestEventInfo(ctxt, "LunchList", "It's time for lunch! Aren't you hungry?", i);
      note.flags |= Notification.FLAG_AUTO_CANCEL;

      mgr.notify(NOTIFY_ME_ID, note);
    } else {
      Intent i = new Intent(ctxt, AlarmActivity.class);

      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

      ctxt.startActivity(i);
    }
  }
コード例 #25
0
  /**
   * generate chat notification
   *
   * @param context
   * @param message
   * @param userId
   */
  @SuppressWarnings("deprecation")
  public void generateNotification(
      Context context, String message, String fullname, String userImage, String userId) {
    int icon = R.drawable.ic_launcher;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager =
        (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);

    String title = context.getString(R.string.app_name);
    Intent notificationIntent = null;

    notificationIntent = new Intent(context, ChatActivity.class);
    notificationIntent.putExtra("fullname", fullname);
    notificationIntent.putExtra("user_id", userId);
    notificationIntent.putExtra("image", userImage);

    PendingIntent intent =
        PendingIntent.getActivity(
            context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    notification.setLatestEventInfo(context, title, message, intent);

    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    // Play default notification sound
    notification.defaults |= Notification.DEFAULT_SOUND;

    // Vibrate if vibrate is enabled
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    notificationManager.notify(0, notification);
  }
コード例 #26
0
  /** Shows the timer notification */
  private void showNotification() {
    mNotification = new Notification(R.drawable.icon, null, System.currentTimeMillis());
    mNotification.flags = Notification.FLAG_ONGOING_EVENT;

    // Use start foreground as user would notice if timer was stopped
    startForeground(TIMER_NOTIFICATION, mNotification);
  }
コード例 #27
0
  /** Issues a notification to inform the user that server has sent a message. */
  private static void generateNotification(Context context, String title, String message) {
    int icon = R.drawable.ic_stat_gcm;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager =
        (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    if ((title == null) || (title.equals(""))) {
      title = context.getString(R.string.app_name);
    }
    Intent notificationIntent = new Intent(context, DemoActivity.class);
    // set intent so it does not start a new activity
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

    Notification notification =
        new NotificationCompat.Builder(context)
            .setContentTitle(title)
            .setContentText(message)
            .setContentIntent(intent)
            .setSmallIcon(icon)
            .setWhen(when)
            .setStyle(new NotificationCompat.BigTextStyle().bigText(message))
            .build();

    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(0, notification);
  }
コード例 #28
0
 @Override
 protected void onHandleIntent(Intent intent) {
   if (notificationManager == null)
     notificationManager =
         (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
   Intent notificationIntent = new Intent(this, SplashActivity.class);
   notificationIntent.setAction(Intent.ACTION_MAIN);
   notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);
   PendingIntent pendingIntent2 = PendingIntent.getActivity(this, 0, notificationIntent, 0);
   // 通过Notification.Builder来创建通知,注意API Level
   // API11之后才支持
   Notification notify2 =
       new Notification.Builder(this)
           .setSmallIcon(
               R.drawable
                   .ic_launcher) // 设置状态栏中的小图片,尺寸一般建议在24×24,这个图片同样也是在下拉状态栏中所显示,如果在那里需要更换更大的图片,可以使用setLargeIcon(Bitmap
           // icon)
           .setTicker("TickerText:" + "您有新短消息,请注意查收!") // 设置在status
           // bar上显示的提示文字
           .setContentTitle("Notification Title") // 设置在下拉status
           // bar后Activity,本例子中的NotififyMessage的TextView中显示的标题
           .setContentText("This is the notification message") // TextView中显示的详细内容
           .setContentIntent(pendingIntent2) // 关联PendingIntent
           .setNumber(
               1) // 在TextView的右方显示的数字,可放大图片看,在最右侧。这个number同时也起到一个序列号的左右,如果多个触发多个通知(同一ID),可以指定显示哪一个。
           .getNotification(); // 需要注意build()是在API level
   // 16及之后增加的,在API11中可以使用getNotificatin()来代替
   notify2.flags |= Notification.FLAG_AUTO_CANCEL;
   notificationManager.notify(NOTIFICATION_FLAG, notify2);
 }
コード例 #29
0
  /** Issues a notification to inform the user that server has sent a message. */
  private static void generateNotification(Context context, String message) {
    int icon = R.drawable.ic_launcher;
    long when = System.currentTimeMillis();
    NotificationManager notificationManager =
        (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(icon, message, when);

    String title = context.getString(R.string.app_name);

    Intent notificationIntent = new Intent(context, MainActivity.class);
    // set intent so it does not start a new activity
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;

    // Play default notification sound
    notification.defaults |= Notification.DEFAULT_SOUND;

    // notification.sound = Uri.parse("android.resource://" + context.getPackageName() +
    // "your_sound_file_name.mp3");

    // Vibrate if vibrate is enabled
    notification.defaults |= Notification.DEFAULT_VIBRATE;
    notificationManager.notify(0, notification);
  }
コード例 #30
0
ファイル: Main2Activity.java プロジェクト: Kutear/StudyDemo
 @Override
 public void onClick(View v) {
   NotificationManager manager =
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
   PendingIntent pendingIntent2 =
       PendingIntent.getActivity(
           this, 0, new Intent(this, MainActivity.class), PendingIntent.FLAG_UPDATE_CURRENT);
   // 通过Notification.Builder来创建通知,注意API Level
   // API11之后才支持
   Notification notify2 =
       new Notification.Builder(this)
           .setSmallIcon(
               R.mipmap
                   .ic_launcher) // 设置状态栏中的小图片,尺寸一般建议在24×24,这个图片同样也是在下拉状态栏中所显示,如果在那里需要更换更大的图片,可以使用setLargeIcon(Bitmap
           // icon)
           .setTicker("TickerText:" + "您有新短消息,请注意查收!") // 设置在status
           // bar上显示的提示文字
           .setContentTitle("Notification Title") // 设置在下拉status
           // bar后Activity,本例子中的NotififyMessage的TextView中显示的标题
           .setContentText("This is the notification message") // TextView中显示的详细内容
           .setContentIntent(pendingIntent2) // 关联PendingIntent
           .setNumber(
               1) // 在TextView的右方显示的数字,可放大图片看,在最右侧。这个number同时也起到一个序列号的左右,如果多个触发多个通知(同一ID),可以指定显示哪一个。
           .getNotification(); // 需要注意build()是在API level
   // 16及之后增加的,在API11中可以使用getNotificatin()来代替
   notify2.flags |= Notification.FLAG_AUTO_CANCEL;
   manager.notify(i++, notify2);
 }