49

mp3(kalimba.mp3)ファイルをrawフォルダ内のresフォルダにコピーしました。ただし、通知がトリガーされると、デフォルトのサウンドが生成されます。

これは私が通知を行う方法です:

protected void GenerateNotify() {

    NotificationManager myNotificationManager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);  
    Notification notification=new Notification(android.R.drawable.ic_btn_speak_now,"hi",100);
    Intent intent=new Intent(getApplicationContext(),as.class);
    PendingIntent contentintent=PendingIntent.getBroadcast(getApplicationContext(),0, intent, 0);
    notification.setLatestEventInfo(getApplicationContext(), "Hi","date", contentintent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notification.sound = Uri.parse("android.resource://com.example.serviceproject/" + R.raw.kalimba);
    myNotificationManager.notify(NOTIFICATION_ID,notification);
}
4

6 に答える 6

117
notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notifysnd);
notification.defaults = Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE;

DEFAULT_SOUNDが定義されている場合、デフォルトのサウンドがすべてのサウンドを上書きします

于 2012-12-07T09:36:14.330 に答える
18

R.raw.kalimba整数のリソースIDです。その中のサウンドリソースの名前が必要ですUri。だから試してみてください:

notification.sound = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE
        + "://" + getPackageName() + "/raw/kalimba");
于 2012-12-09T04:10:22.633 に答える
4

これを試して:

Uri sound = Uri.parse("android.resource://" + context.getPackageName() + "/raw/notifysnd);
notification.setSound(sound);
于 2016-05-12T09:29:17.187 に答える