Android Notification 关闭 取消 震动 关闭取消声音和 Notification进行下载文件

本文介绍了如何使用NotificationCompat.Builder配置Android通知,包括取消震动和声音,并提供了设置Notification进行文件下载的方法。通过设置FLAG_ONLY_ALERT_ONCE解决重复提醒问题,并讨论了清单文件中静态广播的注册与权限设置。
摘要由CSDN通过智能技术生成
               

使用builder 进行设置,我用Notification设置无效:

mBuilder.setDefaults(NotificationCompat.FLAG_ONLY_ALERT_ONCE);

我单独设置下面两句话,没有效果,我就去掉了,只用上面那句话就解决了;

builder.setVibrate(new long[]{0});

builder.setSound(null);




下面是我的鞋的

import java.lang.reflect.Method;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.media.AudioManager;import android.os.Build;import android.support.v4.app.NotificationCompat;import android.support.v4.app.NotificationCompat.Builder;import android.widget.RemoteViews;import com.lidroid.xutils.http.HttpHandler;import com.redoor.rcs.R;import com.redoor.rcs.async.xhttp.info.ReqVersionInfo;import com.redoor.rcs.common.AppContext;import com.redoor.rcs.utils.MyLog;import com.redoor.rcs.utils.Utils;public class NotificationDownUtils private static NotificationManager manager; private Builder mBuilder; private RemoteViews mRemoteview; private static NotificationDownUtils instance; private static Context context;  public static  NotificationDownUtils get(){  if (manager==null) {   synchronized (NotificationManager.class) {    if (manager==null) {     context= AppContext.getContext();     manager=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);     instance=new NotificationDownUtils();    }    }  }  return instance; } private PendingIntent getPendingIntent(ReqVersionInfo gInfo) {  Intent i=new Intent();  if (!Utils.isNullOrEmpty(gInfo.getIntentWhichClassName())) {   i.setClassName(context, gInfo.getIntentWhichClassName());  }  return PendingIntent.getActivity(context, gInfo.getId(), i, PendingIntent.FLAG_UPDATE_CURRENT);//requestcode  相同则被覆盖掉,应该是不行同的 }  private NotificationCompat.Builder createInviteNBuilder(ReqVersionInfo gInfo){  Builder builder =new Builder(context);  builder.setWhen(System.currentTimeMillis())    .setContentIntent(getPendingIntent(gInfo))//此处是用广播处理了,这里就不用了    .setSmallIcon(R.drawable.ic_launcher)    .setTicker("检测有新版本")    .setDefaults(Notification.FLAG_SHOW_LIGHTS)    .setPriority(Notification.PRIORITY_DEFAULT)    .setOngoing(true)//true:必须手动清除代码    .setDefaults(Notification.DEFAULT_ALL);  return builder; } public void showDownloadNotification(ReqVersionInfo gInfo){  if (mBuilder==null) {   mBuilder=createInviteNBuilder(gInfo);  }  if (mRemoteview==null) {   mRemoteview=new RemoteViews(context.getPackageName(), R.layout.notification_download);  }  mRemoteview.setImageViewResource(R.id.iv_image, R.drawable.ic_launcher);  mRemoteview.setTextViewText(R.id.title, gInfo.getName());  mRemoteview.setTextViewText(R.id.progress_str,gInfo.getProgressStr());  mRemoteview.setProgressBar(R.id.roundProgressBar, 100, gInfo.getProgress(), false);  MyLog.e("NotificationDownUtils.java", "NotificationDownUtils gInfo = "+gInfo);  String stateRes="开始";  String intentfilter=null;  if (gInfo.getLoading_state()==HttpHandler.State.CANCELLED.value()) {   stateRes="取消";//已取消   intentfilter=NotificationBroadcast.NOTIFICATION_VERSION_CANCLE;  }else if (gInfo.getLoading_state()==HttpHandler.State.FAILURE.value()){   stateRes="失败";   intentfilter=NotificationBroadcast.NOTIFICATION_VERSION_DOWNLOAD;  }else if (gInfo.getLoading_state()==HttpHandler.State.LOADING.value()){   stateRes="下载中";   intentfilter=NotificationBroadcast.NOTIFICATION_VERSION_CANCLE;  }else 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值