我正在开发我的第一个android应用程序,但问题即将到来。 我已经设置了Firebase的通知声音。我的应用程序目前正常工作,它只在应用程序在屏幕上打开时播放声音...如果屏幕已锁定,我会在屏幕上收到通知,但不播放声音...我该如何解决?锁屏通知声音
下面的代码的一部分: https://imghost.io/images/2017/09/19/Cattura.png
我正在开发我的第一个android应用程序,但问题即将到来。 我已经设置了Firebase的通知声音。我的应用程序目前正常工作,它只在应用程序在屏幕上打开时播放声音...如果屏幕已锁定,我会在屏幕上收到通知,但不播放声音...我该如何解决?锁屏通知声音
下面的代码的一部分: https://imghost.io/images/2017/09/19/Cattura.png
试试这个。
try {
// Get default notification uri object.
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
} catch (Exception e) {
e.printStackTrace();
}
然后设置这个URI作为你的声音通知生成器对象像
notificationBuilder.setSound(notification)
查看this原来的答案
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());
}
}
只有当应用程序在屏幕上打开时,通知声音! –
它的工作原理,只有当应用程序是在...如果屏幕是小盒它不运行... –
更新了答案。另外,删除与添加声音相关的其他代码。 –