我正在开发我的第一个Android应用程序,但问题即将来临。 我已经使用Firebase设置了通知声音。我的应用程序目前正常工作,它只在屏幕上打开应用程序时播放声音...如果屏幕被锁定,我会在屏幕上收到通知,但没有播放声音......我该如何解决?
答案 0 :(得分:0)
试试这个。
try {
// Get default notification uri object.
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
} catch (Exception e) {
e.printStackTrace();
}
然后将此uri设置为通知构建器对象中的声音,如
notificationBuilder.setSound(notification)
查看this原始回答
答案 1 :(得分:0)
private void showNotification(String msg)
{
private Context mContext = getApplicationContext();
private NotificationManager mNotificationManager = (NotificationManager)
this.getSystemService(Context.NOTIFICATION_SERVICE);
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> services = activityManager
.getRunningTasks(Integer.MAX_VALUE);
boolean isActivityFound = false;
if (services.get(0).topActivity.getPackageName().toString()
.equalsIgnoreCase(getPackageName().toString())) {
isActivityFound = true;
}
Intent openIntent = null;
if (isActivityFound) {
openIntent = new Intent();
} else {
openIntent = new Intent(this, MainActivity.class);
openIntent.putExtra("message", msg);
}
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
openIntent, PendingIntent.FLAG_ONE_SHOT);
if (msg != null && (!msg.isEmpty())) {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setDefaults(Notification.DEFAULT_ALL)
.setVibrate(new long[]{100, 250, 100, 250, 100, 250})
.setAutoCancel(true)
.setColor(getResources().getColor(R.color.activity_toolbar_color))
.setContentTitle(theTitle)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(Html.fromHtml(msg)))
.setPriority(Notification.PRIORITY_MAX)
.setContentText(Html.fromHtml(msg));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mBuilder.setSmallIcon(R.drawable.notification_icon1);
} else {
mBuilder.setSmallIcon(R.drawable.notification_icon);
}
mBuilder.setContentIntent(contentIntent);
int notificationNumber = 0;
mNotificationManager.notify(notificationNumber, mBuilder.build());
}
}