手机睡眠时 Android 中的通知
Posted
技术标签:
【中文标题】手机睡眠时 Android 中的通知【英文标题】:Notifications in Android when the phone is sleeping 【发布时间】:2017-04-18 13:19:24 【问题描述】:我一直在我正在构建的应用程序中使用通知。与旧版本相比,构建通知的方式发生了很大变化,但最终我设法显示了一个通知。 (*)
我有两个问题: 1) 通知没有声音。这不是增加平板电脑中通知量的问题,因为来自 gmail 的通知确实会产生声音。如何发出产生声音和振动的通知? (我正在 android 6 中尝试这个)
2) 更重要的是,即使手机处于睡眠状态,我如何发出“通知”我的通知?到目前为止,我的通知确实在手机处于睡眠状态时发生,但我必须打开手机才能看到它们。理想情况下,即使屏幕是黑色的,这些也应该出现
编辑:为了清楚起见,通知在手机睡眠时发生。只是除非我打开屏幕,否则我看不到它们,那么它们就是。我想让通知“打开屏幕”
(*) 我当前的代码是
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
PendingIntent pi = PendingIntent.getActivity(context, 0, new Intent(), 0);
Notification notification= new Notification.Builder(context)
.setContentTitle(message)
.setContentText("Proximity Alert!")
.setSmallIcon(R.mipmap.ic_launcher)
.setAutoCancel(true)
.setContentIntent(pi).build(); //getNotification();
//notification.flags= Notification.FLAG_AUTO_CANCEL;
//notification.setLatestEventInfo(context, "GAST", "Proximity Alert", pi); //this is deprecated
notificationManager.notify(NOTIFICATION_ID, notification);
【问题讨论】:
对于声音:Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);并在通知生成器中: .setSound(defaultSoundUri) 【参考方案1】:是的,您可以通过这种方式在发送通知时添加声音。
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
builder.setSound(defaultSoundUri);
要在手机休眠时执行此操作,您将不得不使用服务。
文档:Services
【讨论】:
感谢您的回复。关于第二项,我可能没有很好地解释自己,对不起。通知在睡眠时确实发生。如果我按下打开按钮,我可以清楚地看到即使不使用服务它们也在那里。我的问题是我希望他们唤醒电话。我该怎么做? 参考这个唤醒屏幕link希望这有帮助以上是关于手机睡眠时 Android 中的通知的主要内容,如果未能解决你的问题,请参考以下文章
如何在设备处于睡眠模式时的某个特定时间在 android 中推送本地通知