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();
}
}