ホームに戻る
 目覚まし時計のサンプル

// 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){}
    }
  }
}

inserted by FC2 system