2017-01-24 9 views
1

こんにちは皆、私は警報アプリケーションを行っています。ここに私のremoveAlarmとAlarmReceiverがあります。私はアラームのために着メロを設定しました。しかし、この時間がなくなったら、着信音が鳴り、1分2分待つが、それはオフにならなかった。それで、私はそれをオフにするために何ができますか?アラームの着信音を止めるには?

public static void removeAlarm(Context context, long id){ 
    AlarmManager alarmManager; 
    PendingIntent pendingIntent; 
    alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    Intent myIntent = new Intent(context, AlarmReceiver.class); 
    pendingIntent = PendingIntent.getBroadcast(context, (int) id, myIntent, 0); 
    if(alarmManager != null) 
     alarmManager.cancel(pendingIntent); 
} 

public class AlarmReceiver extends BroadcastReceiver { 
private Ringtone ringtone = null; 
@Override 
public void onReceive(Context context, Intent intent) { 
    Toast.makeText(context,"Alarm",Toast.LENGTH_LONG).show(); 
    Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
    ringtone = RingtoneManager.getRingtone(context, uri); 
    ringtone.play(); 
    Intent x = new Intent(context,AlarmDialog.class); 
    context.startActivity(x); 
} 
+1

あなたはringtone.stopを試してみました(); ? – Isaac

答えて

0

遅延の後に、あなたの着信音をキャンセルするには、ringtone.play()後、このようなあなたのBroadcastReceiverHandlerタスクを追加することができます。

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    ringtone.stop(); 
    } 
}, 1000 * 60); // runs stop() after 1 minute 
関連する問題