Costruire un AlarmManager di tipo RTC_WAKEUP che aziona la suoneria mediante broadcast, con broadcastreceiver registrato dinamicamente.
Salvataggio:
public class MainActivity extends AppCompatActivity {
BroadcastReceiver receiver;
IntentFilter filter;
Ringtone ringtone;
AlarmManager alarmManager;
Intent intent;
PendingIntent pendingIntent;
Button stopButton;
Calendar calendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
stopButton=(Button)findViewById(R.id.button);
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ringtone.stop();
}
});
receiver=new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Uri ringtoneUri = RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(),
RingtoneManager.TYPE_ALARM);
ringtone = RingtoneManager.getRingtone(getApplicationContext(), ringtoneUri);
ringtone.play();
}
};
filter=new IntentFilter();
filter.addAction("suona");
registerReceiver(receiver,filter);
intent=new Intent();
intent.setAction("suona");
pendingIntent=PendingIntent.getBroadcast(getApplicationContext(),
0,
intent,
0);
alarmManager=(AlarmManager)getSystemService(ALARM_SERVICE);
calendar=Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY,9);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);
}
}
Parto da questo scheletro:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Nessun commento:
Posta un commento