我试图在状态栏通知中进行自定义声音播放. .mp3文件在res / raw /中.但是当我通知用户声音没有播放.我已经试过MediaPlayer,它的作品,但我不想让它播放与MediaPlayer.
这是我的方法:
- public void showNotification()
- {
- String ns = Context.NOTIFICATION_SERVICE;
- NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
- int icon = R.drawable.Feedback; // icon from resources
- CharSequence tickerText = mContext.getString(R.string.statusbar_notification); // ticker-text
- long when = System.currentTimeMillis(); // notification time
- Context context = getApplicationContext(); // application Context
- CharSequence contentTitle = mContext.getString(R.string.statusbar_notification); // message title
- CharSequence contentText = mContext.getString(R.string.statusbar_notificatione_detailed); // message text
- Intent notificationIntent = new Intent(mContext,Main.class);
- PendingIntent contentIntent = PendingIntent.getActivity(mContext,notificationIntent,0);
- // the next two lines initialize the Notification,using the configurations above
- Notification notification = new Notification(icon,tickerText,when);
- //notification.defaults |= Notification.DEFAULT_SOUND;
- notification.defaults |= Notification.DEFAULT_VIBRATE;
- notification.sound = Uri.parse("android.resource://" + getPackageName() + "/R.raw.notificationsound");
- notification.setLatestEventInfo(context,contentTitle,contentText,contentIntent);
- mNotificationManager.notify(1,notification);
- }
谢谢.
解决方法
从ContentResolver的文档:
The Uri should be one of the following formats:
android.resource://package_name/id_number
你传递的字符串“R.raw.notificationsound”这意味着什么.
相反尝试这样:
- notification.sound = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.notificationsound );