Articles of android notifications

为什么Android忽略了通知的创建?

我有代码,它只是不起作用,所以我请任何人帮助我。 关于这个具体问题的信息非常少。 主要活动 public class MainActivity extends Activity { public final int PENDING_INTENT_ID = 8; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button clickity = (Button)findViewById(R.id.alarm_button); clickity.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Calendar now = Calendar.getInstance(); now.add(Calendar.SECOND, 20); //Create a new PendingIntent used by the Alarm when it activates Intent intent […]

自定义TaskStack从通知中完成父活动

我在使用TaskStack进行通知时遇到问题。 我正在尝试在点击通知时保持我的应用程序的导航流程。 我的应用程序的导航样式如下: PrincipalActivity (父)→ SecondaryActivity (子) 有时,GCM服务可以推送启动SecondaryActivity通知。 PrincipalActivity的实例可能存在或不存在,因此我从TaskStack实现了一个自定义PendingIntent(见下文)。 这在PrincipalActivity暂停或关闭时有效。 当用户在前台的PrincipalActivity中点击通知时出现问题: PendingIntent调用PrincipalActivity.onDestroy()并创建丢失所有数据的新堆栈活动。 服务推送通知: Intent notificationIntent = new Intent(context, SecondaryActivity.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(SecondaryActivity.class); stackBuilder.addNextIntent(notificationIntent); PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mNotifyBuilder.setContentIntent(pendingIntent); mNotificationManager.notify(id, mNotifyBuilder.build()); AndroidManifest.xml中 我尝试使用PendingIntent ( FLAG_UPDATE_CURRENT , FLAG_ONE_SHOT )的标志,并尝试使用不同的launch_mode进行清单中的活动( singleTask , singleTop , singleInstance ),但没有运气。 当父级已经在前台并且不丢失数据时,如何使用activity和parent创建上述自定义TaskStack ? (理想情况下,重用堆栈中的活动?)

如何处理来自系统托盘的通知

我知道在后台应用中处理消息 当您的应用在后台时,Android会将通知消息定向到系统托盘。 用户点按通知会默认打开应用启动器。 这包括包含通知和数据有效负载的消息。 在这些情况下,通知将传递到设备的系统托盘,并且数据有效负载将在启动器活动的附加内容中传递。 但我的应用程序应检测通知何时到达进行操作(从服务器获取数据),因为当通知到达时必须加载数据但是,当应用程序在后台我不知道通知到达用户点击通知将打开应用程序并且我将加载数据,但是某些用户没有点击通知所以数据没有加载 所以我的问题任何方式知道什么时候应用程序接收通知案件应用程序在后台?

更新通知时NotificationCompat代码文本不显示

背景 这是我正在编写的一个应用程序,用于熟悉一些API,除了在Android中演示某些function之外,它没有任何实际用途 。 我有一个在前台运行的Service ( startForeground ),并且有一个持续的Notification ,当被点击时返回到应用程序。 Service侦听广播并将其记录到数据库。 启动服务,创建通知 我在Service onCreate中使用NotificationCompat.Builder创建我的Notification : @Override public void onCreate() { super.onCreate(); Log.v(TAG, “onCreate”); // Get the notification manager to update notifications mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); Intent openAppIntent = new Intent(this, MainActivity.class); openAppIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); PendingIntent selectNotifPendingIntent = PendingIntent.getActivity(this, 0, openAppIntent, 0); // Build the notification to show […]

适用于18岁以下API的NotificationListenerService?

无论如何可以使用NotificationListenerService来获得超过18的API级别。我找不到任何关于它的信息所以我认为这是不可能的,但我刚发现stackoverflow上的post,有人说它可以完成。 ( 这里Nagendra先生说他们也提供了对旧版本的支持 )我不知道如何直接问他这个问题,所以我要问每个人。 请帮我解决一下这个。 AccessibilityService引起了很多麻烦,所以我正在寻找替代方案。 任何帮助将非常感激。

创建通知时罕见的RuntimeException

我有一个GcmListenerService侦听GCM消息,然后创建一个通知: public class MyGcmListenerService extends GcmListenerService { NotificationManager notificationManager; @Override public void onMessageReceived(final String from, final Bundle data) { super.onMessageReceived(from, data); notificationManager = (NotificationManager) getApplicationContext().getSystemService(NOTIFICATION_SERVICE); String title = data.getString(“title”); String messager = data.getString(“message”); Notification notification = new NotificationCompat.Builder(getApplicationContext()) // set title, message, style etc .build(); notificationManager.notify(0, notification); } } 一切都很标准。 这对于成千上万的用户而言每天工作数千次。 我确实通过Crashlytics收到上述几行的以下崩溃: 致命exception:java.lang.RuntimeException无法在未调用Looper.prepare()的线程内创建处理程序 这几乎完全发生在Android 6(98%)和制造商称为TCLCommunications的设备上。 […]

Android 5+ remoteviews涟漪效应

是否可能对作为远程视图一部分的按钮产生连锁反应?(使用自定义布局或小部件通知) 我尝试将按钮背景设置为drawable notification_material_media_action_background: 但它没有效果。 通知源代码中使用相同的背景,并且通知按钮会产生连锁反应。 这是Notification source中的代码,它创建了动作按钮(具有涟漪效果): private RemoteViews More …generateMediaActionButton(Action action) { final boolean tombstone = (action.actionIntent == null); RemoteViews button = new RemoteViews(mBuilder.mContext.getPackageName(), R.layout.notification_material_media_action); button.setImageViewResource(R.id.action0, action.icon); button.setDrawableParameters(R.id.action0, false, -1, 0xFFFFFFFF, PorterDuff.Mode.SRC_ATOP, -1); if (!tombstone) { button.setOnClickPendingIntent(R.id.action0, action.actionIntent); } button.setContentDescription(R.id.action0, action.title); return button; } 唯一不同的是这条线: button.setDrawableParameters(R.id.action0, false, -1, 0xFFFFFFFF, PorterDuff.Mode.SRC_ATOP, -1); 但是这个方法是@hide所以它不能被调用。 知道如何添加涟漪效果吗? 谢谢!

Material Design中的Android通知操作图标大小

材料设计的通知操作(按钮)中的图标大小应该是多少? 我正在寻找完整的图标大小(图标边界/光学边界)。 我遇到了一个非常相似的问题: Android通知操作按钮中图标的大小是多少? 但那是在材料设计时代之前。 最重要的是,所选答案是不完整的,因为它没有为每个设备密度指定图标大小(图标边界/光学边界)。

FCM下游消息不遵循priority / time_to_live #Askfirebase

我以前广泛使用过GCM 3.0,实际上是消息应用程序的主干。 但是,既然现在有一个新应用程序的FCM,我正在使用FCM。 现在,我看到我推送它的下游消息的奇怪行为。 这是我试图推动的内容。 String json = “{\n” + ” \”to\”: \””+ token + “\”,\n” + ” \”priority\”: \”high\”,\n” + ” \”time_to_live\”: 0 ,\n” + ” \”data\”: ” + dataJson + “}”; HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost post = new HttpPost(FCM_URL); post.addHeader(“Content-Type”, “application/json”); post.addHeader(“Authorization”,”Key=”+SERVER_KEY); StringEntity postingString = new StringEntity(json);//gson.tojson() converts your pojo to json […]

棉花糖上的所有华为,荣誉,小米:通知小图标始终设置为应用程序图标

在所有华为,荣誉,小米与Android Marshmallow(双SIM卡的自定义ROM)上,通知小图标setSmallIcon始终设置为默认的应用程序活动图标,我无法按自己的setSmallIcon放置。 大图标setLargeIcon工作正常。 测试过的API 21和23.有没有人有工作代码? test(R.drawable.ic_mynotificon, “Test”); private void test(int resID, String txt) { final NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(getContext()); final NotificationCompat.Builder notif_builer = new NotificationCompat.Builder(getContext()) .setContentTitle(txt) .setContentText(txt) .setSmallIcon(resID) .setDefaults(NotificationCompat.DEFAULT_ALL); mNotificationManager.notify(999, notif_builer.build()); return; }