2017-03-27 14 views
0

は、これは私は、なぜアラームが呼び出されますが、呼び出し音は鳴りませんか?

 Intent intent = new Intent(getBaseContext(), AlarmReceiver.class); 
    pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); 
    alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); 

をalarmmanagerを呼び出している、これが私の受信機である:

受信機が呼び出された
public class AlarmReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context arg0, Intent arg1) { 
    Toast.makeText(arg0, "Alarm received!", Toast.LENGTH_LONG).show(); 
    Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
    Ringtone ringtone = RingtoneManager.getRingtone(arg0, uri); 
    ringtone.play(); 
    if (ringtone.isPlaying()) { 
     Log.e("Yep","Its playin"); 
    }else { 
     Log.e("NOp","just nop"); 
    } 

、私はいつもうん取得、その演奏が、着信音が鳴ることはありません...それは私がそれを確信しているボリュームではないので、他に何が問題になる可能性がありますか?またRingtoneManager.TYPE_ALARM

の代わりにRingtoneManager.TYPE_NOTIFICATIONを使用してみてください

Uri uri = RingtoneManager.getDefaultUri(RingtoneManager. TYPE_ALARM); 
try{ 
    MediaPlayer mp = MediaPlayer.create(arg0, uri); 
    mp.start(); 
} catch(Exception e){} 

あなたはエミュレータ上で作業している:代わりのMediaPlayerを使用してみてください事前

答えて

0

でいただきありがとうございますか!デフォルトでは着信音がないためです。 コードをそのまま使用することができます(実際のデバイスで動作するはずですが、着信音がない場合などはサイレントモードなど)。

DDMSを使用して/ sdcardフォルダに移動し、エミュレータを再起動して、Mediaアプリケーションを開き、MP3ファイルを参照し、長押しして「電話着信音として使用」を選択します。

+0

はい私はエミュレータを使用していますので、メディアプレーヤーを試しましたが、まだ動作しませんでした..私はこのメッセージを取得していることに気づいたE/MediaPlayer:既にサブタイトルコントローラが設定されている必要があります。 @RichardMcFriendOluwamuyiwa –

+0

私はそれを修正するために私の答えを更新しました。それは私がMediaPlayerにコントローラを設定しなかったために起こったことです。 MediaPlayersには、音楽再生を制御するためのMediaControllerが必要です(必要な場合のみ)。あなたがしない場合、それらを使用しないことを選択することがあります –

+0

私もそれを試みてまだ動作していない...キャッチしようとすると、絶対に何もなかった...まだコントローラのmsgとサウンドを持っていない...とにかく助けてくれてありがとう@RichardMcFriendOluwamuyiwa –

関連する問題