我已经搜索了这个,所以如果已经回答这个问题我很抱歉(我很乐意被重定向),但具体来说我们的问题是断断续续的。
我们的客户抱怨说,当从我们的软件向他们的手机发送事件时,通知音频是间歇性的,不会“鸣叫”。它会在一段时间内正常工作,然后“停止几个小时”(根据客户的抱怨推断)。
我们无法在内部重现这一点,但我们从客户那里得到的挫败感是我们真的需要解决它。
我们的客户坚持认为他们没有打电话,播放音频或运行其他软件,也没有看到他们的手机,我基本上相信他们。
我们已经注意到这主要是在Jellybean上,因为这是我们大多数客户正在运行的,但它可能不会被孤立到这种情况。
我做错了什么,或者是否有更好的方式来“通知”通知。在这个阶段,我很乐意尝试不同的东西
void updateNotification()
{
Notification.Builder builder = new Notification.Builder(_context);
// Set the appearance of the notification:
int icon;
String title;
String description;
// ...
//CODE setting icon, title and description
// ...
builder.setSmallIcon(icon);
builder.setContentTitle(title);
builder.setContentText(description);
builder.setTicker(description);
// Set the sound for the notification:
builder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM));
Intent intent = new Intent(_context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra(MainActivity.EXTRA_TAB, MainActivity.EXTRA_TAB_TASKS);
builder.setContentIntent(PendingIntent.getActivity(_context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
// Update the notification:
NotificationManager manager = (NotificationManager)_context.getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(_notificationId, builder.build());
}
答案 0 :(得分:1)
出于某种原因,我注意到有些设备在静音或振动模式下静音所有音量(包括闹钟音量)。在这些模式下,对于这些设备,除非您更改模式,否则无法更改此音量。
我让用户抱怨类似的问题,并且必须通过强制更改模式来确保音量足够高。然后我播放音频并将模式切换回原始配置。
编辑:Here is a post来自抱怨此事的用户。请注意屏幕截图上的"警告"的音量按钮。禁用静音。
编辑2:在我的特定情况下,我运行以下检查以查看是否需要增加音量:
if (audioManager.getRingerMode() != AudioManager.RINGER_MODE_NORMAL
&& audioManager.getStreamVolume(AudioManager.STREAM_ALARM) == 0) {
// Save current state and increase the volume
}
答案 1 :(得分:0)
虽然@Ricardo给出的答案肯定值得包含在你的代码中,而我已将其保留在我们的代码中,但我的问题主要是由于手机的电源管理(这可能是显而易见的,但我和# 39;对Android开发很新。)
我们的通知需要在发送时发送,我们的用户手机才会进入睡眠模式,因此我们添加了WakeLock(但是,为了照顾他们的电池寿命,我们只提供它& #39;当用户“登录”我们的应用时。在轮班结束时,WakeLock被释放了。