ホームに戻る
目覚まし時計のサンプル
// AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.nmAlarm"
android:versionCode="1"
android:versionName="1.0">
<application android:label="@string/app_name" >
<activity android:name="nmAlarm"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="nmAlarm2" />
<receiver android:name=".ReceivedActivity" android:process=":remote" />
</application>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
</manifest>
// ReceivedActivity.java
package com.android.nmAlarm;
import android.content.Intent;
import android.content.Context;
import android.content.BroadcastReceiver;
import android.os.PowerManager;
import android.app.KeyguardManager;
public class ReceivedActivity extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakelock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, "nma");
wakelock.acquire(30000);
KeyguardManager km = (KeyguardManager) context.getSystemService(context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock klock = km.newKeyguardLock("nma");
klock.disableKeyguard();
Intent Alarm_intent = new Intent(context, nmAlarm2.class);
Alarm_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
context.startActivity(Alarm_intent);
}
}
// nmAlarm.java
package com.android.nmAlarm;
import java.io.*;
import java.util.Calendar;
import android.os.Bundle;
import android.content.Intent;
import android.widget.*;
import android.widget.TimePicker;
import android.view.*;
import android.view.View.*;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
public class nmAlarm extends Activity
{
public TextView tv;
public Button bt1, bt2;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String readString = new String();
try{
FileInputStream fileInputStream;
fileInputStream = openFileInput("nma.txt");
byte[] readBytes = new byte[fileInputStream.available()];
fileInputStream.read(readBytes);
readString = new String(readBytes);
}
catch(FileNotFoundException e){
readString = new String("Alarm is not setting");
}
catch(IOException e){}
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
setContentView(ll);
tv = new TextView(this);
tv.setText(readString);
bt1 = new Button(this);
bt2 = new Button(this);
bt1.setText("set");
bt2.setText("cancel");
ll.addView(tv);
ll.addView(bt1);
ll.addView(bt2);
bt1.setOnClickListener(new SampleClickListener());
bt2.setOnClickListener(new SampleClickListener());
}
public void onDestroy()
{
super.onDestroy();
}
class SampleClickListener implements OnClickListener
{
public void onClick(View v){
if(v == bt1){
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
TimePickerDialog timePickerDialog = new TimePickerDialog(nmAlarm.this, new OnTimeSetListener(), hour, minute, true);
timePickerDialog.show();
}
else if(v == bt2){
Intent intent = new Intent(nmAlarm.this, ReceivedActivity.class);
PendingIntent sender = PendingIntent.getBroadcast(nmAlarm.this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(sender);
try{
FileOutputStream fileOutputStream = openFileOutput("nma.txt", MODE_PRIVATE);
String writeString = new String("Alarm is not setting");
fileOutputStream.write(writeString.getBytes());
tv.setText(writeString);
}
catch(FileNotFoundException e){}
catch(IOException e){}
}
}
}
class OnTimeSetListener implements TimePickerDialog.OnTimeSetListener {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Intent intent = new Intent(nmAlarm.this, ReceivedActivity.class);
PendingIntent sender = PendingIntent.getBroadcast(nmAlarm.this, 0, intent, 0);
Calendar calendar2 = Calendar.getInstance();
if((hourOfDay < calendar2.get(Calendar.HOUR_OF_DAY)) || (hourOfDay == calendar2.get(Calendar.HOUR_OF_DAY) && minute <= calendar2.get(Calendar.MINUTE))){
calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH), hourOfDay, minute);
calendar2.add(Calendar.DAY_OF_MONTH, 1);
}
else{
calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH), hourOfDay, minute);
}
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar2.getTimeInMillis(), sender);
try{
FileOutputStream fileOutputStream = openFileOutput("nma.txt", MODE_PRIVATE);
String writeString = new String("Alarm setting -> " + hourOfDay + ":" + minute);
fileOutputStream.write(writeString.getBytes());
tv.setText(writeString);
}
catch(FileNotFoundException e){}
catch(IOException e){}
}
}
}
// nmAlarm2.java
package com.android.nmAlarm;
import java.io.*;
import java.util.Calendar;
import android.os.Bundle;
import android.content.Intent;
import android.widget.TimePicker;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.net.Uri;
import android.media.Ringtone;
import android.media.RingtoneManager;
public class nmAlarm2 extends Activity
{
public int flag;
public Ringtone ringtone;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flag = 0;
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
TimePickerDialog timePickerDialog = new TimePickerDialog(this, new OnTimeSetListener(), hour, minute, true);
timePickerDialog.show();
Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
ringtone = RingtoneManager.getRingtone(this, uri);
ringtone.play();
}
public void onDestroy()
{
super.onDestroy();
ringtone.stop();
if(flag == 0){
try{
FileOutputStream fileOutputStream = openFileOutput("nma.txt", MODE_PRIVATE);
String writeString = new String("Alarm is not setting");
fileOutputStream.write(writeString.getBytes());
}
catch(FileNotFoundException e){}
catch(IOException e){}
}
}
class OnTimeSetListener implements TimePickerDialog.OnTimeSetListener {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Intent intent = new Intent(nmAlarm2.this, ReceivedActivity.class);
PendingIntent sender = PendingIntent.getBroadcast(nmAlarm2.this, 0, intent, 0);
Calendar calendar2 = Calendar.getInstance();
if((hourOfDay < calendar2.get(Calendar.HOUR_OF_DAY)) || (hourOfDay == calendar2.get(Calendar.HOUR_OF_DAY) && minute <= calendar2.get(Calendar.MINUTE))){
calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH), hourOfDay, minute);
calendar2.add(Calendar.DAY_OF_MONTH, 1);
}
else{
calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH), hourOfDay, minute);
}
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar2.getTimeInMillis(), sender);
ringtone.stop();
flag = 1;
try{
FileOutputStream fileOutputStream = openFileOutput("nma.txt", MODE_PRIVATE);
String writeString = new String("Alarm setting -> " + hourOfDay + ":" + minute);
fileOutputStream.write(writeString.getBytes());
}
catch(FileNotFoundException e){}
catch(IOException e){}
}
}
}