JavascriptProva

mercoledì 4 aprile 2018

Mandala di broadcast receiver registrato dinamicamente e attivato da un AlarmManager sulla stessa activity

Mandala.
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