Articles of android notifications

如何在android中按下通知时打开片段页面

我在通知栏中按通知时试图打开一个片段。 我的app结构是: 带导航抽屉菜单的基本活动 从菜单打开的一些片段 b.setOnClickListener(new OnClickListener() { @SuppressWarnings({ “deprecation”, “static-access” }) public void onClick(View v) { w_nm=(NotificationManager) getActivity().getSystemService(getActivity().NOTIFICATION_SERVICE); Notification notify=new Notification(R.drawable.notnificationlogo,waternoti,System.currentTimeMillis()); Intent notificationIntent = new Intent(getActivity(), Abc.class); PendingIntent pending=PendingIntent.getActivity(getActivity(), 0,notificationIntent, 0); notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP ); notify.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL; notify.setLatestEventInfo(getActivity(),waternoti,waternoti1, pending); w_nm.notify(0, notify); 谁能告诉我如何链接下一个片段页面(当前代码在扩展片段的类中)

如何使用RemoteViews更新通知?

我正在使用来自自定义服务的RemoteViews创建通知,该服务在前台模式下运行通知(即,只要用户可以看到通知,服务就会保持活动状态)。 通知设置为正在进行,因此用户无法将其滑动。 我想更改ImageView显示的位图,包含在远程视图的布局中或更改TextView文本值。 远程视图中的布局使用xml布局文件设置。 我的问题是,一旦通知被创建并且对用户可见,如果我调用任何RemoteViews的函数(如setImageViewResource来更改ImageView显示的Bitmap,则更改是不可见的,除非在我调用setImageViewResource之后我调用: NotificationManager.notify( id, notification ); 要么 Service.startForeground(id,notification); 这对我来说听起来不对。 我无法相信在已创建的通知中更新RemoteViews UI,我必须重新初始化通知。 如果我在通知中有Button控件,它会在触摸和释放时自动更新。 所以必须有一种方法来做到这一点,但我不知道如何。 这是我的代码,它在我的Service实例中创建通知: this.notiRemoteViews = new MyRemoteViews(this,this.getApplicationContext().getPackageName(),R.layout.activity_noti1); Notification.Builder notibuilder = new Notification.Builder(this.getApplicationContext()); notibuilder.setContentTitle(“Test”); notibuilder.setContentText(“test”); notibuilder.setSmallIcon(R.drawable.icon2); notibuilder.setOngoing(true); this.manager = (NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE); this.noti = notibuilder.build(); this.noti.contentView = this.notiRemoteViews; this.noti.bigContentView = this.notiRemoteViews; this.startForeground(NOTIFICATION_ID, this.noti); 以及“强制”UI更改为通知的function: public void updateNotiUI(){ this.startForeground(NOTIFICATION_ID, this.noti); } 在MyRemoteViews类中,如果需要,我这样做是为了对UI进行更改: this.setImageViewResource(R.id.iconOFF, R.drawable.icon_off2); this.ptMyService.updateNotiUI(); […]

更改通知的LED颜色

我基本上只是尝试Android开发,几天前我遇到了这个名为“ Go SMS Pro ”的应用程序,除其他外,它可以设置不同颜色的通知(蓝色,绿色,橙色,粉红色和浅色)蓝色)。 所以,我已经尝试在我自己的应用程序中自己做这个,但是我不能改变颜色和LED闪烁的内部。 我目前使用此代码: public class MainActivity extends Activity { static final int NOTIFICATION_ID = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(buttonOnClick); } public OnClickListener buttonOnClick = new OnClickListener() { @Override public void onClick(View v) { String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) […]

大通知图标背景

由于通知中的Android 5.0大图标具有彩色背景: 对于小图标,它是通知的强调颜色( Notification.Builder.setColor(int) )。 如何将其设置为大图标? 它是实际图像的一部分吗? 如果是,圆半径应该是多少?

为什么NotificationManagerCompat :: cancelAll()获取SecurityException?

使用NotificationManagerCompat取消所有通知。 NotificationManagerCompat manager = NotificationManagerCompat.from(ctx.getApplicationContext()); manager.cancelAll(); 它有一段时间exception(大部分时间都有效)。 在Andoid 6上: java.lang.SecurityException:Permission Denial:来自pid = 22994的getCurrentUser(),uid = 10184需要android.permission.INTERACT_ACROSS_USERS Fatal Exception: java.lang.SecurityException: Permission Denial: getCurrentUser() from pid=22994, uid=10184 requires android.permission.INTERACT_ACROSS_USERS at android.os.Parcel.readException(Parcel.java:1602) at android.os.Parcel.readException(Parcel.java:1555) at android.app.INotificationManager$Stub$Proxy.cancelAllNotifications(INotificationManager.java:649) at android.app.NotificationManager.cancelAll(NotificationManager.java:323) at android.support.v4.app.NotificationManagerCompat.cancelAll(NotificationManagerCompat.java:197) 在Android 5.0,4.4.2上: ava.lang.SecurityException:权限拒绝:来自pid = 5460的getIntentSender(),uid = 10135,(需要uid = 1000)不允许在android.os.Parcel.readException(Parcel.java:1465)中作为包android发送 Fatal Exception: java.lang.SecurityException: Permission Denial: getIntentSender() from pid=3109, uid=10153, (need […]

在自定义通知中添加按钮操作

我已经制作了custom notification并且有一个按钮,我想functionalities on notification and button click执行两个不同的functionalities on notification and button click 。 我看了很多链接但找不到添加按钮监听器的方法。 谁能帮忙。 这是我的代码。 非常感谢。 private void startNotification() { Intent intent; PendingIntent pIntent; RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.mynotification); Context context = getApplicationContext(); NotificationCompat.Builder builder = new NotificationCompat.Builder( this).setSmallIcon(R.drawable.ic_launcher).setContent( remoteViews); if (hasFlash) { intent = new Intent(context, FlashLight.class); pIntent = PendingIntent.getActivity(context, 1, intent, […]

通知中的音乐播放器控制

如何在android中设置播放/暂停,下一个和上一个按钮的通知。 我是Android的新手,也是堆栈溢出的新手。 所以请耐心等待。 我开始播放歌曲时设置通知,如下所示: ` @SuppressLint(“NewApi”) public void setNotification(String songName){ String ns = Context.NOTIFICATION_SERVICE; NotificationManager notificationManager = (NotificationManager) getSystemService(ns); @SuppressWarnings(“deprecation”) Notification notification = new Notification(R.drawable.god_img, null, System.currentTimeMillis()); RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification_mediacontroller); //the intent that is started when the notification is clicked (works) Intent notificationIntent = new Intent(this, AudioBookListActivity.class); PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this, 0, […]

IntentService创建的通知始终使用错误的Intent

问题 当用户按下发送“按钮1” (向下滚动以查看应用程序的构造)时,将从RefreshService创建新的Notification 。 如果用户按下此通知, MainActivity实例将启动并在Intent接收值为Button 1的String 。 显示该值。 当用户现在按下发送“按钮2”时,将从RefreshService创建新的Notification 。 如果用户按下此通知, MainActivity实例将启动并在Intent接收一个String ALSO ,其值为Button 1 。 所以你可以猜到,通常应该有值Button 2 。 当用户按下的第一个按钮是发送“按钮2”时 ,总是会发送Button 2 。 获得第二个按钮值的唯一解决方案是重新启动手机并先按第二个按钮。 即使强行关闭也行不通。 我知道我也可以用另一种方式更改UI。 但是我需要在app中使用这种方法,我需要用另一个Intent重新启动’MainActivity’,所以方法应该是相同的。 施工 一个名为MainActivity的Activity 一个名为RefreshService的IntentService 主要活动 public class MainActivity extends Activity implements View.OnClickListener { public static final String RECEIVED = “received”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); […]

更改通知布局

我反编译了我的系统音乐应用程序(来自索尼爱立信for Android GB 2.3.7),因为我想更改通知布局。 我find了使用此代码创建通知的方法: private void sendStatusBarNotification(Track paramTrack) { if (paramTrack != null) { NotificationManager localNotificationManager = (NotificationManager)this.mContext.getSystemService(“notification”); String str = paramTrack.getArtist(); if ((str == null) || (str.equals(this.mContext.getString(2131361954)))) str = this.mContext.getString(2131361798); Notification localNotification = new Notification(2130837696, paramTrack.getTitle() + ” – ” + str, System.currentTimeMillis()); localNotification.flags = (0x2 | localNotification.flags); localNotification.flags = (0x20 | localNotification.flags); […]

在通知Android中加载来自url的图片

在我的Android应用程序中,我想动态设置通知图标,这些图标将从URL加载。 为此,我在receiver使用了NotificationBuilder的setLargeIcon属性。我提到了许多链接,但尝试了各种解决方案,但无法获得所需的输出。 虽然我从url下载了该图像并在通知中设置了该位图,但它没有显示,而是将setSmallIcon图像显示为大图标。 我不知道我哪里出错了。 我在这里发布我的代码。 请帮我解决这个问题。 谢谢。 码: @SuppressLint(“NewApi”) public class C2DMMessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (“com.google.android.c2dm.intent.RECEIVE”.equals(action)) { Log.e(“C2DM”, “received message”); final String fullName = intent.getStringExtra(“message”); final String payload1 = intent.getStringExtra(“message1”); final String payload2 = intent.getStringExtra(“message2”); final String userImage = intent.getStringExtra(“userImage”); Log.e(“userImage Url […]