2017-12-13 42 views
0

私のandriodアプリケーションとのFirebaseメッセージがあります。 Firebaseを使用してプッシュ通知を送信しています。私はデフォルトの通知音をカスタム音に変更したいと思います。どうすればいい?FCMカスタム通知音

Uri defaultSoundUri = 
    RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
      .setLargeIcon(image)/*Notification icon image*/ 
      .setSmallIcon(R.mipmap.ic_notif) 
      .setContentTitle(title) 
      .setAutoCancel(true) 
      .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent) 
      .setCustomBigContentView(remoteViews) 
      .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(image)) 
      ; 


    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(Integer.parseInt(id) /* ID of notification */, notificationBuilder.build()); 
} 
+1

[this](https://www.myflashlabs.com/custom-icon-sound-fcm-air-native-extension/)の記事は非常に便利です。カスタムサウンドをどのように処理できるかを説明しています。 –

答えて

1
notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.pop); 
notification.defaults |= Notification.DEFAULT_VIBRATE; 
リソースからカスタムサウンドを追加するコード上記

使用。

上記のコードは、通知クラスを使用している場合に使用できます。

Notification notification = new Notification(icon, tickerText, when); 

NotificationBuilderを使用しているので、次のコードを使用してください。

Uri sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notifysnd); 
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
     .setLargeIcon(image)/*Notification icon image*/ 
     .setSmallIcon(R.mipmap.ic_notif) 
     .setContentTitle(title) 
     .setAutoCancel(true) 
     .setSound(sound) 
     .setContentIntent(pendingIntent) 
     .setCustomBigContentView(remoteViews) 
     .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(image)) 
     ; 
+0

どこを交換すればよいですか?コードを上記のコードで修正することはできますか? –

+0

編集した回答を確認してください。 –

+0

それは[働いた]非常に多くの笑ってありがとう:)それは私に多くの助け:) –

0

使用音を設定するsetSound()方法

if(!silent) { // check if phone is not in silent mode 
     notificationBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); 
     NotificationManager notificationManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(9999, notificationBuilder.build()); 
    } 
} 

それともあなたは、デバイスのデフォルトのサウンドを使用する場合は、あなたが使用する必要があります

{ 
    "to" : "XXYYXXYY...", 

    "notification" : { 
     "body" : "The stock opened on a bullish note at Rs. 449 and touched a high of Rs. 461.35, up 5.06 per cent over its previous closing price on the BSE. A similar movement was seen on the NSE where the stock opened at Rs. 450 and hit a high of Rs. 463.70, up 5.32 per cent.", 
     "title" : "Stocks in focus: Kalpataru Power, Punj Lloyd, J B Chem, Bharti Airtel", 
     "icon" : "ic_stock", 
     "sound" : "res_notif_sound" 
    } 
} 

を使用することができます。 "サウンド": "デフォルト"。

+0

現在のコードでカスタマイズすることはできませんか? –

+0

@JackN、あなたのコメントを理解できません – Rinav