取消应用程序卸载时的通知

时间:2015-02-16 14:51:39

标签: android android-intent android-activity android-notifications android-applicationinfo

在我的代码中,我创建了一个通知,一旦点击,就会尝试卸载由其包名标识的应用。我希望只有在成功卸载应用程序后通知才会消失。如果用户针对应用程序卸载弹出窗口单击“取消”,我希望通知保持不变。

我有什么想法可以做到这一点?

    Uri packageURI = Uri.parse("package:" + package_name);
    Intent intent = new Intent(Intent.ACTION_DELETE, packageURI);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    PendingIntent pintent=PendingIntent.getActivity(context,0,intent,0);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
    builder.setContentIntent(pintent);
    builder.setContentTitle(uninstallAppNotificationTitle);
    builder.setTicker(uninstallAppNotificationTicker);
    builder.setContentText(uninstallAppNotificationContent);
    builder.setWhen(System.currentTimeMillis());
    builder.setAutoCancel(true);
    builder.setDefaults(Notification.DEFAULT_ALL);
    builder.setSmallIcon(android.R.drawable.ic_dialog_alert);
    builder.setStyle(new NotificationCompat.BigTextStyle().bigText(uninstallAppNotificationContent)) ;
    builder.setPriority(Notification.PRIORITY_MAX);
    builder.setOngoing(true);

    Notification notification = builder.build();
    notification.contentIntent = pintent;
    NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(TAG, uninstallNotificationId, notification);

1 个答案:

答案 0 :(得分:1)

有一种方法。你可以为它创建一个广播接收器

Package removed

我确定你在某处坚持通知ID。只需使用该ID取消通知。为每个应用程序修复一个卸载ID或包ID,在广播接收器中接收意图并使用通知管理器取消通知。