2017-09-19 70 views
-2

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

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

回答

0

试试这个。

try { 
    // Get default notification uri object. 
    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

然后设置这个URI作为你的声音通知生成器对象像

notificationBuilder.setSound(notification) 

查看this原来的答案

+0

它的工作原理,只有当应用程序是在...如果屏幕是小盒它不运行... –

+0

更新了答案。另外,删除与添加声音相关的其他代码。 –

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

     } 
    } 
+0

只有当应用程序在屏幕上打开时,通知声音! –