按钮通知被点击时关闭状态栏 [英] Close status bar when button notification is clicked

查看:641
本文介绍了按钮通知被点击时关闭状态栏的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何关闭通知按钮后,状态栏中点击?

我想这个,但我有一个例外:

  java.lang.NoSuchMethodException:崩溃[]
   在java.lang.Class.getConstructorOrMethod(Class.java:460)
   在java.lang.Class.getMethod(Class.java:915)
   ...
 

我的code:

  NotificationCompat.Builder建设者=新NotificationCompat.Builder(上下文)
    .setSmallIcon(R.drawable.icon)
    .setContentTitle(同步失败)
    .setContentText(Lorem存有悲坐阿梅特)
    .setStyle(新NotificationCompat.BigTextStyle()。bigText(Lorem存有悲坐阿梅特))
    .addAction(R.drawable.change,更改通行证,pChangePass)
    .addAction(R.drawable.remove,忽略,pIgnore)
    .setAutoCancel(假);
mNotificationManager.notify(accountUnique,builder.build());
 

目前NotificationIntent类

  @覆盖
公共无效的onReceive(上下文的背景下,意图意图){
    INT notificationID = intent.getExtras()调用getInt(NOT_ID)。
    this.callbackContext = StatusBarNotification.getCallback();
    this.mNotificationManager = StatusBarNotification.getNotificationManager();

    this.mNotificationManager.cancel(notificationID);
    this.callbackContext.success(returnJSON(意向));
}
 

解决方案

好吧,我解决了这个问题。

 私人INT currentApiVersion = android.os.Build.VERSION.SDK_INT;
...

对象sbservice = context.getSystemService(状态栏);
尝试 {
    类<> statusbarManager =的Class.forName(android.app.StatusBarManager);
    如果(currentApiVersion< = 16){
        方法塌陷= statusbarManager.getMethod(崩溃);
        collapse.invoke(sbservice);
    } 其他 {
        方法collapse2 = statusbarManager.getMethod(collapsePanels);
        collapse2.invoke(sbservice);
    }
}赶上(例外五){
    e.printStackTrace();
}
 

How can I close status bar after notification button click?

I tried this, but I had an exception:

java.lang.NoSuchMethodException: collapse []
   at java.lang.Class.getConstructorOrMethod(Class.java:460)
   at java.lang.Class.getMethod(Class.java:915)
   ...

My code:

NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
    .setSmallIcon(R.drawable.icon)
    .setContentTitle("Sync Failed")
    .setContentText("Lorem ipsum dolor sit amet")
    .setStyle(new NotificationCompat.BigTextStyle().bigText("Lorem ipsum dolor sit amet"))
    .addAction(R.drawable.change, "Change Pass", pChangePass)
    .addAction(R.drawable.remove, "Ignore", pIgnore)
    .setAutoCancel(false);
mNotificationManager.notify(accountUnique, builder.build());

At NotificationIntent class

@Override
public void onReceive(Context context, Intent intent) {
    int notificationID = intent.getExtras().getInt("NOT_ID");
    this.callbackContext = StatusBarNotification.getCallback();
    this.mNotificationManager = StatusBarNotification.getNotificationManager();

    this.mNotificationManager.cancel(notificationID);
    this.callbackContext.success(returnJSON(intent));
}

解决方案

Ok, I solved it.

private int currentApiVersion = android.os.Build.VERSION.SDK_INT;
...

Object sbservice = context.getSystemService("statusbar");
try {
    Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
    if (currentApiVersion <= 16) {
        Method collapse = statusbarManager.getMethod("collapse");
        collapse.invoke(sbservice);
    } else {
        Method collapse2 = statusbarManager.getMethod("collapsePanels");
        collapse2.invoke(sbservice);
    }
} catch (Exception e) {
    e.printStackTrace();
}

这篇关于按钮通知被点击时关闭状态栏的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆