Buon giorno a tutti!
Ho un problema che mi porto dietro da un po di tempo, ma ancora non riesco a venirne a capo. La situazione è questa:
Activity - Ho una Activity principale dove setto le opzioni di un timer. Una volta cliccato su un bottone imposto un allarm manager con i dati inseriti e faccio terminare la mia classe.
public void onClick(View v) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MINUTE, timerSharedPreference.getInt("minute", 0));
calendar.add(Calendar.SECOND, timerSharedPreference.getInt("second", 0));
Intent intent = new Intent(getApplicationContext(), CallReceiver.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
sender);
Log.i("Main", "Richiesta inviata");
finish();
}BroadcastReceiver - Al momento opportuno parte il mio broadcastReceiver che lancia una nuova activity.
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("CallReciver", "Richiesta ricevuta");
Intent newIntent = new Intent(context, MiaClasse.class);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(newIntent);
}
}Problema - Come faccio a evitare che il cellulare vada in standby tra il lancio del pendig intet a la ricezione da parte del brodcast?
Oppure, come faccio a far "svegliare" il cellulare nel momento in cui il BroadcastReceiver riceve la richiesta?
L'utente mimmog mi ha suggerito, in un post precedente, di utilizzare il gestore del wakeLook nel broadcastReceiver: la cosa non risulta fattibile poiché non essendo un Activity non posso instanziare un PowerManager
PowerManager pm = (PowerManager) getSystemService(android.content.Context.POWER_SERVICE);Qualcuno sa come io ne possa venire a capo?