精华内容
下载资源
问答
  • 三招帮你禁止华为通知栏消息不管是华为、小米还是苹果三星等智能手机,都会有同一个困扰:每天都会接收到不少的推送栏消息,除了系统通知之外,还有各种各样的第三方应用推送消息,十分烦人。面对这样的提示,大部分...

    原标题:华为通知栏怎么设置?三招帮你禁止华为通知栏消息

    不管是华为、小米还是苹果三星等智能手机,都会有同一个困扰:每天都会接收到不少的推送栏消息,除了系统通知之外,还有各种各样的第三方应用推送消息,十分烦人。面对这样的提示,大部分的人都会选择一个个删除通知。但是实际上,在华为上我们有更简单的方法来清除通知,下面小编就跟大家简单说说。

    4c9bd4571138785f32de7e53a208e11d.png

    一、指纹识别秒关通知

    如果你的手机是支持“指纹识别”功能的话,那么你就可以通过指纹识别来快速清理通知栏消息。

    进入:设置 - 指纹 - 将“显示通知面板”打开。这样你要清理通知栏消息的时候,可以将手指放在指纹键里然后进行“下滑”操作,即可打开通知栏。当通知栏成功下拉后,双击“指纹键”就可以将消息一键清理掉了。

    94d3e73b658c64edd2a608be24da19a4.png

    二、长按取消“显示通知”

    如果某个应用总是频繁地出现,推送一些消息的话,你可以通过单独设置来禁止对应的APP提示。

    长按推送消息的APP,单击进入应用消息之后将“显示通知”关闭即可。

    464787e320836d7475bbbd736c73b04d.png

    1dac44509bceb1d2f8489dadf7c37eb5.png

    三、禁止通知

    如果你想要禁止所有的APP推送通知,只允许部分重要应用发送推送消息的话,可以通过以下方法来禁止所有通知。

    进入:设置 - 通知管理 - 进入对应的APP,选择禁止通知即可。

    以上就是华为如何禁止通知的简单方法,你都get到了吗?返回搜狐,查看更多

    责任编辑:

    展开全文
  • 消息通知栏demo

    2014-12-22 23:04:47
    以下为程序启动流程: 1.开机启动AlarmService 2.AlarmActivity一秒后发送一条系统广播 ...5.单击消息,取消通知栏信息 6.但程序关闭时,单击消息,重启程序 小知识:BroadCast、Service、Notification,初学者适用
  • 当APP有推送功能时,需要判断当前app在手机中是否开启了允许消息推送,否则即使添加了推送代码仍然收不到通知,所以需要要么跳转至设置界面设置,要么自定义消息通知。 效果图 方法一:跳转到应用程序设置界面...

    前言

    当APP有推送功能时,需要判断当前app在手机中是否开启了允许消息推送,否则即使添加了推送代码仍然收不到通知,所以需要要么跳转至设置界面设置,要么自定义消息通知。

    效果图

     

    方法一:跳转到应用程序设置界面

    1、将NotificationSetUtil.java类复制到项目中

    package com.php.project.notificationsetutildemo.utils;
    
    import android.app.AppOpsManager;
    import android.content.Context;
    import android.content.Intent;
    import android.content.pm.ApplicationInfo;
    import android.net.Uri;
    import android.os.Build;
    import android.support.annotation.RequiresApi;
    import android.support.v4.app.NotificationManagerCompat;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    /**
     * Created by peihp
     * Used 判断是否开启消息通知,没有开启的话跳转到手机系统设置界面
     */
    public class NotificationSetUtil {
    
        //判断是否需要打开设置界面
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        public static void OpenNotificationSetting(Context context, OnNextLitener mOnNextLitener) {
            if (!isNotificationEnabled(context)) {
                gotoSet(context);
            } else {
                if (mOnNextLitener != null) {
                    mOnNextLitener.onNext();
                }
            }
        }
    
        //判断该app是否打开了通知
        /**
         * 可以通过NotificationManagerCompat 中的 areNotificationsEnabled()来判断是否开启通知权限。NotificationManagerCompat 在 android.support.v4.app包中,是API 22.1.0 中加入的。而 areNotificationsEnabled()则是在 API 24.1.0之后加入的。
         * areNotificationsEnabled 只对 API 19 及以上版本有效,低于API 19 会一直返回true
         * */
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        public static boolean isNotificationEnabled(Context context) {
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
                NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
                boolean areNotificationsEnabled = notificationManagerCompat.areNotificationsEnabled();
                return areNotificationsEnabled;
            }
    
            String CHECK_OP_NO_THROW = "checkOpNoThrow";
            String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION";
    
            AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
            ApplicationInfo appInfo = context.getApplicationInfo();
            String pkg = context.getApplicationContext().getPackageName();
            int uid = appInfo.uid;
    
            Class appOpsClass = null;
            /* Context.APP_OPS_MANAGER */
            try {
                appOpsClass = Class.forName(AppOpsManager.class.getName());
                Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE,
                        String.class);
                Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);
    
                int value = (Integer) opPostNotificationValue.get(Integer.class);
                return ((Integer) checkOpNoThrowMethod.invoke(mAppOps, value, uid, pkg) == AppOpsManager.MODE_ALLOWED);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
    
        }
    
        //打开手机设置页面
        /**
         * 假设没有开启通知权限,点击之后就需要跳转到 APP的通知设置界面,对应的Action是:Settings.ACTION_APP_NOTIFICATION_SETTINGS, 这个Action是 API 26 后增加的
         * 如果在部分手机中无法精确的跳转到 APP对应的通知设置界面,那么我们就考虑直接跳转到 APP信息界面,对应的Action是:Settings.ACTION_APPLICATION_DETAILS_SETTINGS*/
        private static void gotoSet(Context context) {
    
            Intent intent = new Intent();
            if (Build.VERSION.SDK_INT >= 26) {
                // android 8.0引导
                intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
                intent.putExtra("android.provider.extra.APP_PACKAGE", context.getPackageName());
            } else if (Build.VERSION.SDK_INT >= 21) {
                // android 5.0-7.0
                intent.setAction("android.settings.APP_NOTIFICATION_SETTINGS");
                intent.putExtra("app_package", context.getPackageName());
                intent.putExtra("app_uid", context.getApplicationInfo().uid);
            } else {
                // 其他
                intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
                intent.setData(Uri.fromParts("package", context.getPackageName(), null));
            }
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }
    
        /*=====================添加Listener回调================================*/
        public interface OnNextLitener {
            /**
             * 不需要设置通知的下一步
             */
            void onNext();
        }
    
        private OnNextLitener mOnNextLitener;
    
        public void setOnNextLitener(OnNextLitener mOnNextLitener) {
            this.mOnNextLitener = mOnNextLitener;
        }
    }
    

    使用方法:

    package com.php.project.notificationsetutildemo;
    
    import android.content.Context;
    import android.os.Build;
    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;
    import android.widget.Toast;
    
    import com.php.project.notificationsetutildemo.utils.NotificationSetUtil;
    
    public class MainActivity extends AppCompatActivity {
    
        private Context mContext;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mContext = this;
    
    
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                //判断是否需要开启通知栏功能
                NotificationSetUtil.OpenNotificationSetting(mContext, new NotificationSetUtil.OnNextLitener() {
                    @Override
                    public void onNext() {
                        Toast.makeText(mContext,"已开启通知权限",Toast.LENGTH_SHORT).show();
                    }
                });
            }
        }
    }

     

    方法二:自定义消息通知

    新建Toast.java

    package com.php.utils.ui.toast;
    
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.app.AppOpsManager;
    import android.app.Application;
    import android.content.Context;
    import android.content.pm.ApplicationInfo;
    import android.os.Build;
    import android.support.annotation.RequiresApi;
    import android.support.v4.app.NotificationManagerCompat;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.TextView;
    
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    import com.php.notification.R;
    
    
    
    public class Toast {
        private static final String CHECK_OP_NO_THROW = "checkOpNoThrow";
        private static final String OP_POST_NOTIFICATION = "OP_POST_NOTIFICATION";
        private static int checkNotification = 0;
        private static Object mToast;
        private static boolean flag = true;
        private Toast(Context context, String message, int duration) {
            if(context instanceof Application)
                checkNotification = 0;
            else
                checkNotification = isNotificationEnabled(context) ? 0 : 1;
            if (checkNotification == 1) {
                try {
                    mToast = EToast2.makeText(context, message, duration);
                } catch (Exception e) {
                    e.printStackTrace();
                    synchronized (CHECK_OP_NO_THROW) {
                        if(flag){
                            flag = false;
                            View toastRoot = LayoutInflater.from(context).inflate(R.layout.toast, null);
                            TextView tv = (TextView) toastRoot.findViewById(R.id.toast_notice);
                            tv.setText(message);
                            mToast = android.widget.Toast.makeText(context,"",duration);
                            ((android.widget.Toast) mToast).setView(toastRoot);
                            ((android.widget.Toast) mToast).setGravity(Gravity.BOTTOM, 0, 200);
                        }
                    }
                    ((TextView)((android.widget.Toast) mToast).getView().findViewById(R.id.toast_notice)).setText(message);
                }
            } else {
    //            mToast = android.widget.Toast.makeText(context, message, duration);
                synchronized (CHECK_OP_NO_THROW) {
                    if(flag){
                        flag = false;
                        View toastRoot = LayoutInflater.from(context).inflate(R.layout.toast, null);
                        TextView tv = (TextView) toastRoot.findViewById(R.id.toast_notice);
                        tv.setText(message);
                        mToast = android.widget.Toast.makeText(context,"",duration);
                        ((android.widget.Toast) mToast).setView(toastRoot);
                        ((android.widget.Toast) mToast).setGravity(Gravity.BOTTOM, 0, 200);
                    }
                }
                ((TextView)((android.widget.Toast) mToast).getView().findViewById(R.id.toast_notice)).setText(message);
            }
        }
        private Toast(Context context, int resId, int duration) {
            if(context instanceof Application)
                checkNotification = 0;
            else
                checkNotification = isNotificationEnabled(context) ? 0 : 1;
            if (checkNotification == 1 && context instanceof Activity) {
                mToast = EToast2.makeText(context, resId, duration);
            } else {
                mToast = android.widget.Toast.makeText(context, resId, duration);
            }
        }
    
        public static Toast makeText(Context context, String message, int duration) {
            return new Toast(context,message,duration);
        }
        public static Toast makeText(Context context, int resId, int duration) {
            return new Toast(context,resId,duration);
        }
    
        public void show() {
            if(mToast instanceof EToast2){
                ((EToast2) mToast).show();
            }else if(mToast instanceof android.widget.Toast){
                ((android.widget.Toast) mToast).show();
            }
        }
        public void cancel(){
            if(mToast instanceof EToast2){
                ((EToast2) mToast).cancel();
            }else if(mToast instanceof android.widget.Toast){
                ((android.widget.Toast) mToast).cancel();
            }
        }
        //判断该app是否打开了通知
        /**
         * 可以通过NotificationManagerCompat 中的 areNotificationsEnabled()来判断是否开启通知权限。NotificationManagerCompat 在 android.support.v4.app包中,是API 22.1.0 中加入的。而 areNotificationsEnabled()则是在 API 24.1.0之后加入的。
         * areNotificationsEnabled 只对 API 19 及以上版本有效,低于API 19 会一直返回true
         * */
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @SuppressLint("NewApi")
        private static boolean isNotificationEnabled(Context context){
            if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT){
                NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);
                boolean areNotificationsEnabled = notificationManagerCompat.areNotificationsEnabled();
                return areNotificationsEnabled;
            }
            AppOpsManager mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
            ApplicationInfo appInfo = context.getApplicationInfo();
    
            String pkg = context.getApplicationContext().getPackageName();
    
            int uid = appInfo.uid;
    
            Class appOpsClass = null; //* Context.APP_OPS_MANAGER *//*
    
            try {
                appOpsClass = Class.forName(AppOpsManager.class.getName());
                Method checkOpNoThrowMethod = appOpsClass.getMethod(CHECK_OP_NO_THROW, Integer.TYPE, Integer.TYPE, String.class);
                Field opPostNotificationValue = appOpsClass.getDeclaredField(OP_POST_NOTIFICATION);
                int value = (int)opPostNotificationValue.get(Integer.class);
                return ((int)checkOpNoThrowMethod.invoke(mAppOps,value, uid, pkg) == AppOpsManager.MODE_ALLOWED);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }
    }

    新建EToast2.java文件:

    package com.php.utils.ui.toast;
    
    import android.content.Context;
    import android.graphics.PixelFormat;
    import android.os.Handler;
    import android.os.Message;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.Timer;
    import java.util.TimerTask;
    
    import com.php.notification.R;
    
    
    
    public class EToast2 {
    
        private WindowManager manger;
        private Long time = 2000L;
        private View contentView;
        private WindowManager.LayoutParams params;
        private static Timer timer;
        private Toast toast;
        private static Toast oldToast;
        private static Context context;
        public static final int LENGTH_SHORT = 0;
        public static final int LENGTH_LONG = 1;
        private static Handler handler;
        private CharSequence text;
    
        private View toastRoot;
    
        private EToast2(Context context, CharSequence text, int HIDE_DELAY){
            this.text = text;
    
            if(HIDE_DELAY == EToast2.LENGTH_SHORT)
                this.time = 2000L;
            else if(HIDE_DELAY == EToast2.LENGTH_LONG)
                this.time = 3500L;
    
            if(oldToast != null && EToast2.context != null && EToast2.context != context){
                EToast2.context = context;
                oldToast.cancel();
                oldToast = null;
            }
            if(oldToast == null){
                LayoutInflater inflate = (LayoutInflater)
                        context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                toastRoot = inflate.inflate(R.layout.toast, null);
                TextView tv = (TextView) toastRoot.findViewById(R.id.toast_notice);
                tv.setText(text);
                toast = Toast.makeText(context,"",HIDE_DELAY);
                toast.setView(toastRoot);
                toast.setGravity(Gravity.BOTTOM, 0, 200);
                contentView = toastRoot;
    
                params = new WindowManager.LayoutParams();
                params.height = WindowManager.LayoutParams.WRAP_CONTENT;
                params.width = WindowManager.LayoutParams.WRAP_CONTENT;
                params.format = PixelFormat.TRANSLUCENT;
                params.windowAnimations = context.getResources().getIdentifier("android:style/Animation.Toast", null, null);
                params.type = WindowManager.LayoutParams.TYPE_TOAST;
                params.setTitle("EToast2");
                params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
                params.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
                params.y = 200;
            }
            if(handler == null){
                handler = new Handler(){
                    @Override
                    public void handleMessage(Message msg) {
                        EToast2.this.cancel();
                    }
                };
            }
        }
    
        public static EToast2 makeText(Context context, String text, int HIDE_DELAY){
            EToast2 toast = new EToast2(context, text, HIDE_DELAY);
            return toast;
        }
    
        public static EToast2 makeText(Context context, int resId, int HIDE_DELAY) {
            return makeText(context,context.getText(resId).toString(),HIDE_DELAY);
        }
    
        public void show(){
            if(oldToast == null){
                oldToast = toast;
                Context context = contentView.getContext().getApplicationContext();
                if (context == null) {
                    context = contentView.getContext();
                }
                manger = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
                manger.addView(contentView, params);
            }else{
                if(timer != null){
                    timer.cancel();
                }
                ((TextView)(oldToast).getView().findViewById(R.id.toast_notice)).setText(text);
            }
            timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    handler.sendEmptyMessage(1);
                }
            }, time);
        }
    
    
        public void cancel(){
            try {
                manger.removeView(contentView);
            } catch (IllegalArgumentException e) {
                //这边由于上下文被销毁后removeView可能会抛出IllegalArgumentException
                //暂时这么处理,因为EToast2是轻量级的,不想和Context上下文的生命周期绑定在一块儿
                //其实如果真的想这么做,可以参考博文2的第一种实现方式,添加一个空的fragment来做生命周期绑定
            }
            timer.cancel();
            oldToast.cancel();
            timer = null;
            toast = null;
            oldToast = null;
            contentView = null;
            handler = null;
        }
    }

    toast.xml文件:

    <?xml version="1.0" encoding="utf-8"?>  
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"  
        android:background="@drawable/toast_bg">  
        
        <TextView android:id="@+id/toast_notice"  
              android:layout_width="wrap_content"  
              android:layout_height="wrap_content"  
              android:layout_gravity="center_vertical"  
              android:gravity="center_vertical"  
              android:background="@color/transparent"
              android:textSize="18sp"
              android:padding="7dp"
              android:textColor="@color/white">  
        </TextView>  
    </LinearLayout>

    使用方法:

    /**
    	 * 提示窗
    	 *
    	 * @param context
    	 * @param mes
    	 */
    	public static void promptMes(Context context, String mes) {
    		com.php.utils.ui.toast.Toast.makeText(context, mes,
    				Toast.LENGTH_SHORT).show();
    	}

    欢迎大家关注本人公众号,一起学习进步,谢谢!

    公众号

    展开全文
  • android通知栏消息通知(Notification)

    千次阅读 2017-03-19 10:44:56
    转载请注明出处:http://blog.csdn.net/xiaohao0724/article/details/63682146在...通知栏消息通知的使用步骤一般可以分为以下步骤: 1. 首先需要一个NotificationManager对通知进行管理 2. 为了兼容低版本使用v4包

    转载请注明出处:

    http://blog.csdn.net/xiaohao0724/article/details/63682146

    在开发中经常会用到推送给用户通知、消息等的情况,今天就跟大家一起来学习推送消息时通知栏的通知Notification。

    通知栏消息通知的使用步骤

    一般可以分为以下步骤:
    1. 首先需要一个NotificationManager对通知进行管理
    2. 为了兼容低版本使用v4包中的NotificationCompat类的构造器来build Notification对象
    3. 在build同时可以添加Notification的标题、内容、时间、图片等通知参数和内容
    4. 创建点击通知时要跳转的页面
    5. 获取要跳转页面的PendingIntent对象,并在build Notification对象时关联
    6. NotificationManager notify发送消息通知

    下面就带大家来实现通知栏消息Notification,先上图如下:

    此图是运行在Android4.2.2手机上,不同版本可能会有差异

    使用通知代码实现

    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            findViewById(R.id.noamal).setOnClickListener(this);
            findViewById(R.id.word).setOnClickListener(this);
            findViewById(R.id.picture).setOnClickListener(this);
        }
    
        void notification(int type) {
            Notification notification;
            Intent intent = new Intent(this, NotificationDetailsActivity.class);
            //点击通知栏消息跳转页
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
    
            //创建通知消息管理类
            NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    
            NotificationCompat.Builder builder = new NotificationCompat.Builder(this)//创建通知消息实例
                    .setContentTitle("我是标题")
                    .setContentText("我是内容")
                    .setWhen(System.currentTimeMillis())//通知栏显示时间
                    .setSmallIcon(R.mipmap.ic_launcher)//通知栏小图标
                    .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.icon))//通知栏下拉是图标
                    .setContentIntent(pendingIntent)//关联点击通知栏跳转页面
                    .setPriority(NotificationCompat.PRIORITY_MAX)//设置通知消息优先级
                    .setAutoCancel(true)//设置点击通知栏消息后,通知消息自动消失
    //                .setSound(Uri.fromFile(new File("/system/MP3/music.mp3"))) //通知栏消息提示音
    //                .setVibrate(new long[]{0, 1000, 1000, 1000}) //通知栏消息震动
    //                .setLights(Color.GREEN, 1000, 2000) //通知栏消息闪灯(亮一秒间隔两秒再亮)
                    .setDefaults(NotificationCompat.DEFAULT_ALL); //通知栏提示音、震动、闪灯等都设置为默认
    
            switch (type) {
                case 1:
                    notification = builder.build();
                    //id为通知栏消息标识符,每个id都是不同的
                    manager.notify(Constant.NOAMAL, notification);
                    break;
                case 2:
                    notification = builder.setStyle(new NotificationCompat.BigTextStyle().bigText("我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容,我是长文字内容"))
                            .build();
                    manager.notify(Constant.WORD, notification);
                    break;
                case 3:
                    notification = builder.setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(), R.mipmap.big)))
                            .build();
                    manager.notify(Constant.PICTURE, notification);
                    break;
                default:
                    break;
            }
    
        }
    
    
        @Override
        public void onClick(View v) {
    
            switch (v.getId()) {
    
                case R.id.noamal:
                    notification(1);
                    break;
                case R.id.word:
                    notification(2);
                    break;
                case R.id.picture:
                    notification(3);
                    break;
    
            }
        }
    }
    

    点击通知栏跳转到的页面

    public class NotificationDetailsActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            TextView textView = new TextView(this);
            textView.setText("我是通知详情页");
            setContentView(textView);
    //        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            //当点击通知消息跳转到详情页时根据通知消息的id关闭通知栏的显示
    //                manager.cancel(Constant.NOAMAL);
    //                manager.cancel(Constant.WORD);
    //                manager.cancel(Constant.PICTURE);
    
        }
    
    }
    

    发送消息通知的id

    public class Constant {
    
        public static int NOAMAL = 1;
        public static int WORD = 2;
        public static int PICTURE = 3;
    }
    

    点击下载源码

    展开全文
  • android设备在系统通知栏处提示有新消息,同时也有声音通知
  • 苹果7plus在哪设置消息提醒在设置-通知里。 具体操作: 1.点开设置。 2.找到通知。 3.打开通知,找到想要设置的软件,例如微信。 4.可以设置,是否允许通知,是否在“通知中心”显示,是否有声音提醒,是否有图标...

    苹果7plus在哪设置消息提醒

    在设置-通知里。 具体操作: 1.点开设置。 2.找到通知。 3.打开通知,找到想要设置的软件,例如微信。 4.可以设置,是否允许通知,是否在“通知中心”显示,是否有声音提醒,是否有图标标记,是否在锁定屏幕上显示等功能。

    华为手机设置里的通知栏在哪里?

    2b94a62f7ca7fa8ac195be2f7bbfe638.png

    华为手机设置里的通知栏在通知中心里。 进行通知设置的步骤:

    打开手机主页,在页面中找到“设置”图标。

    点击并进入“通知中心”选项

    点击进入需要更改通知的软件,点击打开或者关闭“允许通知”即可。

    在手机设置,状态栏与通知 ,找到你要提示的软件。

    三星手机在哪里设置消息提醒?通知提醒功能,可以在您有未读通知时播放通知铃声,开启方法如下: 进入应用程序-设定-设备-辅助功能-通知提醒开启即可。

    微信在哪里设置消息提示音

    最后一个【设置】触摸开后,【新消息提醒】继续触摸开。

    在手机设置-通知-微信中已经设置了接受新消息通知微信来消息状态栏不显示,可以分四步来检查;

    进入微信我新消息提醒通知确定下是否已经勾眩

    手机设置个人及安全通知中心。看下是否打开了微信在通知栏显示的开关。

    手机设置应用程序微信显示通知看是不是把显示通知

    OPPO手机通知栏设置在哪?

    OPPO手机通知栏设置方法: 1.唤醒手机,打开手机设置。 2.设置页面,选择点击“通知与状态栏” 3.进入通知与状态栏设置页面后,点击“通知管理”。 1.唤醒手机,打开手机设置。 2.设置页面,选择点击“通知与状态栏” 3.进入通知与状态栏设置页面后。

    vivox9手机消息通知使用权限在哪

    vivo X9手机设置QQ软件通知消息权限方法:进入手机设置状态栏与通知管理通知/允许通知的应用打开QQ软件开关即可。具体操作步骤:

    展开全文
  • Android通知栏-Notification(通知消息

    万次阅读 多人点赞 2019-05-29 22:29:08
    在发出一条通知后,手机最上方的状态会显示一个通知的图标,下拉状态后就可以看到通知的详细内容。 1.1 视图分类 Notification有两种视觉风格,一种是标准视图(Normal View),另外一种是大视图(Big view...
  • 删除对应的通知消息 NotificationManager.cancel(id); 下面的案例调用方式在最下面 在Application自定义一个通知栏 安卓7.0后好像不太支持从后台直接唤起程序,我就想到了从通知栏获取进入,事实证明还是可以...
  • Android通知栏消息、点亮屏幕、震动、声音、显示样式的小例子。
  • Android监听消息通知栏点击事件

    千次阅读 2019-12-02 16:47:54
    Android监听消息通知栏点击事件 使用BroadCastReceiver 1 新建一个NotificationClickReceiver 类,并且在清单文件中注册!! public class NotificationClickReceiver extends BroadcastReceiver { @Override ...
  • Android通知栏微技巧,8.0系统中通知栏的适配

    万次阅读 多人点赞 2018-04-17 07:39:11
    大家好,今天我们继续来学习Android 8.0系统的适配。...在上一篇文章当中,我们学习了Android 8.0系统应用图标的适配,那么本篇文章,我们自然要将重点放在通知栏上面了,学习一下Android 8.0系统的通知栏适配
  • 1. 当APP为关闭状态时,点击通知栏消息跳转到指定的页面 2. 当APP在后台运行时,点击通知栏消息跳转到指定的页面 3. 当APP在后台运行时,不会有通知栏提醒,也就不会跳转到指定界面 针对1.的处理- (BOOL)...
  • android清除通知栏消息

    万次阅读 2012-01-10 11:10:58
    这近项目快到结尾了,经理要我处理一个问题,就是我们程序关闭后,程序发出通知 在状态栏上始终没有消除,需要手动的清楚, 体验效果极其不好,现在是想在程序推出后,把通知给消除了,琢磨了下,不知怎么清楚,看...
  • NotificationCompat.PRIORITY_LOW 收缩在通知块中,不会显示全部,点击通知栏后,才会显示 通知栏关闭音效:channel.setSound(null, null); 在notification中:.setSound(null) 再将chanel_idchanel_name换一个唯一...
  • iOS--清除通知栏内所有通知消息

    千次阅读 2019-02-21 17:25:00
    清除通知栏内所有通知消息: 要点在于要先把BadgeNumber 设成跟当前不同的值,然后再设成0 [UIApplication sharedApplication].applicationIconBadgeNumber = 1; [UIApplication sharedApplication]....
  • Android通知栏消息(基本文字通知

    千次阅读 2017-04-21 15:14:28
    使用场景:用户成功登录之后,通知栏提示消息 需要改造的代码: /** * 发送网络请求不能在主线程,需要新开一个线程 */ Runnable requestAPI = new Runnable() { @Override public void ...
  • Windows 10怎么彻底关闭消息通知

    千次阅读 2017-08-15 11:43:00
    Win10怎么彻底关闭消息通知?可能很多Win10用户都知道,可以在“设置-系统-通知和操作”中将各种通知选项关闭掉,但是该方法不够彻底,对于一些系统安全方面的通知并不奏效,该来的通知照样来,还是会影响大家手头的...
  • #打开消息通知栏 driver.open_notifications() #关闭通知栏,可以模拟向上滑动,或者按返回键 代码: #导入库 from appium import webdriver import time desired_caps = dict()#创建字典 desired_caps['...
  • vue.js 消息通知插件 Vue Notibar(通知栏) (Vue Notibar (Notification bar)) Notification bar (Snackbar) plugin for Vue.js. Vue.js的通知栏(Snackbar)插件。 View Demo 查看演示 View Github 查看Github ...
  • 当你用同样的代码在8.0 的手机运行时,是没有效果的。如果要适配 Android 8.0 ,还需要添加 NitificationChannel,根据文档,我们可以这样写: String CHANNEL_ID = "chat"; //适配8.0 if (Build.VERSION.SDK_...
  • 问题:播放时设置服务前台运行,创建一个消息通知栏 service.startForeground(NOTIFICATION_ID, new Notification()); 解决办法:服务停止在前台运行,再清空通知栏 service.stopForeground(true); ...
  • 本章节叙述Flutter 通知栏通知功能,主要是使用 Flutter与原生交互功能调用Android发送通知
  • Android系统有个通知栏的管理,里面可以对app的通知栏进行关闭或者开启,现在需要开启自己App的通知栏,要如何通过代码开启呢。。
  • android 8.0 需要增加是适配,主要是应用图标和通知栏通知栏,主要就是增加了 渠道这个概念,就是一个APP中不同的通知类型要进行分类了,并且用户可以自主选择每一种通知渠道的权限和重要程度。哎,穷逼还没有8.0...
  • Android 实现点击清理通知而不清理通知栏通知解决办法 NotificationCompat.Builder builder=new NotificationCompat.Builder(appContext, CHANNEL_ID) .setSmallIcon(appContext.getApplicationInfo().icon) ...
  • 那么,如果关闭通知栏消息权限,会影响 NotificationManagerService 队列的逻辑处理过程,导致不能通知 TN 显示出视图。 通过上面的分析,我们可以绕过 NotificationManagerService ,我们自己维护一个toast...
  • 应用里有环信的即时通讯模块,所以在应用...但是将应用放到后台运行时,当接收到新消息时,如果手机没有静音,通知栏还会有铃声和震动提醒,也就是代码里没有控制系统的铃声和震动关闭,所以找到这个问题后,刚开始索性就把给

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,075
精华内容 13,230
关键字:

如何关闭消息栏上的消息通知