通知アプリを作成しようとしていますが、ボタンをクリックすると、通知がポップアップしている間にビープ音が鳴ります。
ボタンをクリックすると通知が表示されますが、実行時にサウンドでエラーが発生します。実行時に「エミュレーターが応答していません」というエラーが発生すると思います。
Android mediaplayer エラーが発生しています:
07-19 19:32:28.846: 私/StagefrightPlayer(110): setDataSource('android.resourse://com.example.status/2130968576') 07-19 19:32:28.846: E/MediaPlayer(198):エラー (1、-2147483648) 07-19 19:32:28.846: W/NotificationService(198): android.resourse://com.example.status/2130968576 07-19 19:32:28.846 のサウンドの読み込み中にエラーが発生しました: W /NotificationService(198): java.io.IOException: 準備に失敗しました.: status=0x1 07-19 19:32:28.846: W/NotificationService(198): android.media.MediaPlayer.prepare(Native Method) 07-19 で19:32:28.846: W/NotificationService(198): com.android.server.NotificationPlayer$CreationAndCompletionThread.run(NotificationPlayer.java:90) 07-19 19:32:28.976: D/dalvikvm(273): GC_CONCURRENT が解放されました701K、55% フリー 3028K/6599K、外部 2434K/2980K、一時停止 8ms+4ms
念のため、Java コードを次に示します。
package com.example.status;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.support.v4.app.NavUtils;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify = new Notification(android.R.drawable.stat_notify_more,
"This is important", System.currentTimeMillis());
Context context = MainActivity.this;
CharSequence title = "You have been notified";
CharSequence details = "Continue with what you are doing";
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
notify.setLatestEventInfo(context,title,details,pending);
notify.sound = Uri.parse("android.resourse://com.example.status/" + R.raw.beep);
nm.notify(0, notify);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}