锁定屏幕中的通知声音

时间:2017-09-19 16:35:35

标签: android push-notification

我正在开发我的第一个Android应用程序,但问题即将来临。 我已经使用Firebase设置了通知声音。我的应用程序目前正常工作,它只在屏幕上打开应用程序时播放声音...如果屏幕被锁定,我会在屏幕上收到通知,但没有播放声音......我该如何解决?

这是代码的一部分: https://imghost.io/images/2017/09/19/Cattura.png

2 个答案:

答案 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());

        }
    }