2

我是 Android 新手,我尝试通过通知播放声音,但它不适用于模拟器。请帮我。

public class OneShotAlarm extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, R.string.one_shot_received, Toast.LENGTH_SHORT).show();

        buildNotification(context);

    }


    @SuppressLint("NewApi")
    private void buildNotification(Context context){
          NotificationManager notificationManager 
          = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
          Notification.Builder builder = new Notification.Builder(context);

          Intent intent = new Intent(context, MainActivity.class);
          PendingIntent pendingIntent 
          = PendingIntent.getActivity(context, 0, intent, 0);

          builder
          .setSmallIcon(R.drawable.ic_launcher)
          .setContentTitle("ContentTitle")
          .setContentText("ContentText")
          .setContentInfo("ContentInfo")
          .setTicker("Ticker")
          .setLights(0xFFFF0000, 500, 500) //setLights (int argb, int onMs, int offMs)
          .setContentIntent(pendingIntent)
          .setSound(Uri.parse("android.resource://com.vatshal.VSAlarm/" + R.raw.satinder))
          .setAutoCancel(true);

          Notification notification = builder.build();
          //notification.sound = Uri.parse("android.resource://com.vatshal.VSAlarm/" + R.raw.satinder); 
          //notification.defaults |= Notification.DEFAULT_SOUND;

          notificationManager.notify(R.drawable.notification_warning, notification);
         }
}
4

2 回答 2

2

确保你的资源有声音

try {
        MediaPlayer mediaPlayer = MediaPlayer.create(context,                 R.raw.sound);
        mediaPlayer.start();
    } catch (Exception ex) {

    }
于 2013-01-03T11:06:49.550 回答
0

我用了

.setSound(Uri.parse("android.resource://com.vatshal.VSAlarm/" + R.raw.satinder))

设置音频路径的语法是否正确,放置在名称为“satinder”的“raw”文件夹中?

于 2013-01-03T11:19:10.817 回答