image 9 - Create & Build Alarm Clock App in Android Studio

Create & Build Alarm Clock App in Android Studio

In this article you will learn how to Create and build Alarm clock App in android studio. We will show you the simplest and easiest method to create a simple but great alarm clock application in android studio. This article covers all the methods and procedures to download and run android studio. Furthermore it includes the step by step detailed process and explanation with complete Codes to create an alarm clock app in android studio.

Installation of Android Studio on Windows.

Requirements:

4 GB RAM minimum, 8 GB RAM recommended

2 GB of available disk space minimum, 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image)

1280 x 800 minimum screen resolution

Microsoft Windows 7/8/10 (32- or 64-bit). The Android Emulator supports 64-bit Windows only.

Installation on MAC

Requirements:

4 GB RAM minimum, 8 GB RAM recommended

2 GB of available disk space minimum, 4 GB Recommended (500 MB for IDE + 1.5 GB for Android SDK and emulator system image)

1280 x 800 minimum screen resolution

Mac OS X 10.10 or higher

Procedure:

Creating a New project:

Open Android Studio and then click on File -> New -> New project.

Then type the Application name as “myfirstproject and click Next.

Then select the Minimum SDK as shown below and click Next.

Then select the Empty Activity and click Next.

Finally click Finish.

Creating Second Activity for the Android Application:

Click on File -> New -> Activity -> Empty Activity.

Type the Activity Name as AlarmReceiver and click Finish button.

Thus Second Activity For the application is created.

Designing layout for the Android Application:

Click on app -> res -> layout -> activity_main.xml.

Now click on Text as shown below.

Code for Activity_main.XML

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">

    <TimePicker

        android:id="@+id/timePicker"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center" />

    <ToggleButton

        android:id="@+id/toggleButton"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:layout_margin="20dp"

        android:checked="false"

        android:onClick="OnToggleClicked" />

</LinearLayout>

Changes in Manifest for the Android Application:

Click on app -> manifests -> AndroidManifest.xml

Now change the activity tag to receiver tag in the AndroidManifest.xml file .

Code for AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.exno11" >

    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:supportsRtl="true"

        android:theme="@style/AppTheme" >

        <activity android:name=".MainActivity" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        <receiver android:name=".AlarmReceiver" >

        </receiver>

    </application>

</manifest>

Code for MainActivity.java:

package com.example.exno11;

import android.app.AlarmManager;

import android.app.PendingIntent;

import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.TimePicker;

import android.widget.Toast;

import android.widget.ToggleButton;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity

{

    TimePicker alarmTimePicker;

    PendingIntent pendingIntent;

    AlarmManager alarmManager;

    @Override

    protected void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        alarmTimePicker = (TimePicker) findViewById(R.id.timePicker);

        alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

    }

    public void OnToggleClicked(View view)

    {

        long time;

        if (((ToggleButton) view).isChecked())

        {

            Toast.makeText(MainActivity.this, "ALARM ON", Toast.LENGTH_SHORT).show();

            Calendar calendar = Calendar.getInstance();

            calendar.set(Calendar.HOUR_OF_DAY, alarmTimePicker.getCurrentHour());

            calendar.set(Calendar.MINUTE, alarmTimePicker.getCurrentMinute());

            Intent intent = new Intent(this, AlarmReceiver.class);

            pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);

            time=(calendar.getTimeInMillis()-(calendar.getTimeInMillis()%60000));

            if(System.currentTimeMillis()>time)

            {

                if (calendar.AM_PM == 0)

                    time = time + (1000*60*60*12);

                else

                    time = time + (1000*60*60*24);

            }

            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, time, 10000, pendingIntent);

        }

        else

        {

            alarmManager.cancel(pendingIntent);

            Toast.makeText(MainActivity.this, "ALARM OFF", Toast.LENGTH_SHORT).show();

        }

Code for AlarmReceiver.java:

package com.example.exno11;

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.media.Ringtone;

import android.media.RingtoneManager;

import android.net.Uri;

import android.widget.Toast;

public class AlarmReceiver extends BroadcastReceiver

{

    @Override

    public void onReceive(Context context, Intent intent)

    {

        Toast.makeText(context, "Alarm! Wake up! Wake up!", Toast.LENGTH_LONG).show();

        Uri alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);

        if (alarmUri == null)

        {

            alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        }

        Ringtone ringtone = RingtoneManager.getRingtone(context, alarmUri);

        ringtone.play();

    }

}