Alarm time in System.currentTimeMillis() (wall clock time in UTC), which will wake up the device when it goes off.
"wake up the device when it goes off."ということは、Alarmをセットすることで、指定時刻に端末の電源をONできるのか?と思い、ググってもよくわからないので調査。
package test.alarm; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class AlarmTestActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)findViewById(R.id.alarm); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(ACTION_WAKEUP); intent.setAction(ACTION_WAKEUP); PendingIntent wakeupPendingIntent = PendingIntent.getBroadcast(AlarmTestActivity.this, 0, intent, PendingIntent.FLAG_ONE_SHOT); am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (61 * 1000), wakeupPendingIntent); registerReceiver(alarmReceiver, alarmFilter); Log.d("alarm", "set alarm."); } }); } private final BroadcastReceiver alarmReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ACTION_WAKEUP)) { Log.d("ALARM", "ACTION_WAKEUP"); } else { assert true; } } }; public static final String ACTION_WAKEUP = "wake_up"; private static final IntentFilter alarmFilter = new IntentFilter(); static { alarmFilter.addAction(ACTION_WAKEUP); } }
このコードで、Alarmをセット。端末を起動した状態であれば、ちゃんとアラーム通知が来るのが確認できたので、Alarmのセット→Alarm発火前に電源OFFで試す。
結果、端末起動してくれませんでした。
"wake up the device when it goes off."の"goes off"は、端末のスリープのことみたいですね。残念。
0 件のコメント:
コメントを投稿