MAD Lab Record
MAD Lab Record
1
Ex NO:01 ANDROID STUDIO INSTALLATION / EXECUTION
DATE: PROCEDURE AND REQUIREMENTS
AIM:
PROCEDURE:
Step 1: Get click android studio executable or zip file to extract and install.
Step 3: “Android studio setup” will appear on the screen and click “text” to proceed.
Step 4: Select the needed components and click on the “next” button.
Step 5: Decide the residing location where you want to install “Android studio” exe files.
Step 6: Start menu folder “Android studio” shortcut will appear and click the “Install” button to
proceed and open the installed software.
Step 7: After the successful completion as shown in the image of the installation click on the
“next” button.
Step 8: To “Finish” the process, now, your Android studio welcome screen will appear on the
screen.
Step 9: “Set up wizard” will appear on the screen with welcome wizard menu.
Step 10: Select the “Standard” option and click “next to proceed” to perform basic operations.
Step 11: Select the user interface, then click on “Next” button.
1
Step 12: Now click on “Finish” button to download “Software Development kit”
component.
Step 14: Right from the desktop now you can start your new android studio project.
2
RESULT :
Thus the Android studio was installed and executed successfully. To execute the list
of experiments.
3
Ex. No:02
DEVELOP AN APPLICATION THAT USES GUI COMPONENTS, FONT AND
DATE: COLORS USING UI TOOL KIT
AIM:
To develop a Simple Android Application that uses GUI components, Font and Colors.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
4
Designing layout for the Android Application:
● Click on app -> res -> layout -> activity_main.xml.
● Now click on Text as shown below.
● Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_pa
rent"> <TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:gravity="center"
android:text="Hello World!"
android:textSize="25sp"
android:textStyle="bo
ld" /> <Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:gravity="center"
android:text="Change font size"
android:textSize="25sp" />
5
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:gravity="center"
android:text="Change color"
android:textSize="25sp" />
</LinearLayout>
● Now click on Design and your application will look as given below.
6
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView t= (TextView) findViewById(R.id.textView);
Button b1= (Button) findViewById(R.id.button1);
b1.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
t.setTextSize(font);
font = font + 5;
if (font==50)
Font=30;
}
});
Button b2= (Button) findViewById(R.id.button2);
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (ch) { case 1:
t.setTextColor(Color.RED); break;
case 2:
t.setTextColor(Color.GREEN);
break;
case 3:
t.setTextColor(Color.BLUE); break;
case 4:
t.setTextColor(Color.CYAN); break;
case 5:
t.setTextColor(Color.YELLOW); break;
case 6:
t.setTextColor(Color.MA
GENTA); break;
}
ch++;
if (ch == 7)
7
ch = 1;
} });
}
OUTPUT:
RESULT:
Thus a Simple Android Application that uses GUI components, Font and Colors is
developed and executed successfully.
8
EX.NO:03 DEVELOP AN APPLICATION THAT USES LAYOUT MANAGERS AND
EVENT LISTNERS
DATE :
AIM:
To develop a Simple Android Application that uses Layout Managers and Event Listeners.
PROCEDURE:
Creating a New project:
Open Android Studio and then click on File -> New -> New project.
9
Type the Activity Name as SecondActivity and click Finish button.
Thus Second Activity For the application is created.
Designing Layout for Main Activity:
Click on app -> res -> layout -> activity_main.xml.
Now click on Text as shown below.
Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:text="Details Form"
android:textSize="25sp"
android:gravity="center"/>
</LinearLayout>
10
<GridLayout
android:id="@+id/gridLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="100dp"
android:layout_marginBottom="2
00dp" android:columnCount="2"
android:rowCount="3">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_row="0"
android:layout_colum
n="0"
android:text="Name"
android:textSize="20sp"
android:gravity="center"/>
<EditText
android:id="@+id/editText"
android:layout_width="wrap_co
ntent"
android:layout_height="wrap_co
ntent"
android:layout_margin="
10dp"
android:layout_row="0"
android:layout_colum
n="1"
android:ems="10"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_row="1"
android:layout_column="0"
android:text="Reg.No"
android:textSize="20sp"
android:gravity="center"/>
11
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_row="1"
android:layout_column="1"
android:inputType="number"
android:ems="10"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_row="2"
android:layout_column="0"
android:text="Dept"
android:textSize="20sp"
android:gravity="center"/>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_row="2"
android:layout_column="1"
android:spinnerMode="dropdown"/>
</GridLayout>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="150dp"
android:text="Submit"/>
</RelativeLayout>
12
Designing Layout for Second Activity:
● Click on app -> res -> layout -> activity_second.xml.
● Now click on Text as shown below.
● Then delete the code which is there and type the code as given below.
Code for Activity_second.xml:
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/a
ndroid" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.devang.exno2.SecondA
ctivity" android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="New Text"
android:textSize="30sp"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="New Text"
android:textSize="30sp"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp" android:text="New Text"
android:textSize="30sp"/>
</LinearLayout>
13
Now click on Design and your activity will look as given below.
● So now the designing part of Second Activity is also completed.
Java Coding for the Android Application:
● Java Coidng for Main Activity:
● Click on app -> java -> com.example.exno2 -> MainActivity.
● Then delete the code which is there and type the code as given below.
Code for MainActivity.java:
package com.example.exno2;
import android.content.Intent;
//import android.support.v7.app.AppCompatActivity; import
android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import androidx.appcompat.app.AppCompatActivity;
String name,reg,dept;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
14
e2= (EditText) findViewById(R.id.editText2);
s= (Spinner) findViewById(R.id.spinner);
//Creating Adapter for Spinner for adapting the data from array to Spinner
ArrayAdapter
adapter= new
ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_item,dep
t_array); s.setAdapter(adapter);
bt.setOnClickListener(new View.OnClickListener() {
@Override
reg=e2.getText().toString();
dept=s.getSelectedItem().toString();
i.putExtra("reg_key",reg);
i.putExtra("dept_key", dept);
startActivity(i);
}
}
Java Coding for Second Activity:
● Click on app -> java -> com.example.exno2 -> SecondActivity.
● Then delete the code which is there and type the code as given below.
15
Code for SecondActivity.java:
package com.example.exno2;
import android.content.Intent;
//import
android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class SecondActivity extends
AppCompatActivity { TextView t1,t2,t3;
String
name,reg,dept;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
t1= (TextView) findViewById(R.id.textView1);
t2= (TextView) findViewById(R.id.textView2);
t3= (TextView) findViewById(R.id.textView3);
//Getting the Intent Intent i = getIntent();
//Getting the Values from First Activity using the Intent
received name=i.getStringExtra("name_key");
reg=i.getStringExtra("reg_key");
dept=i.getStringExtra("dept_key");
//Setting the Values to Intent
t1.setText(name); t2.setText(reg);
t3.setText(dept);
}
16
OUTPUT:
RESULT:
Thus a Simple Android Application that uses Layout Managers and Event Listeners is
developed and executed successfully.
17
EX. No:04 WRITE AN APPLICATION THAT DRAWS BASIC GRAPHICAL
DATE : PRIMITIVES ON THE SCREEN
AIM:
To develop a Simple Android Application that draws basic Graphical Primitives on the screen.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno3″ 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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
Designing layout for the Android Application:
● Click on app -> res -> layout -> activity_main.xml.
● Now click on Text as shown below.
● Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imageView" />
</RelativeLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
18
Code for MainActivity.java:
package com.example.exno3;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.widget.ImageView;
//Creating a Bitmap
Bitmap bg = Bitmap.createBitmap(720, 1280, Bitmap.Config.ARGB_8888);
//Creating the Paint Object and set its color & TextSize
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setTextSize(50);
19
//To draw a Square
canvas.drawText("Square", 120, 800, paint);
canvas.drawRect(50, 850, 350, 1150, paint);
OUTPUT:
RESULT:
Thus a Simple Android Application that draws basic Graphical Primitives on the screen is developed
and executed successfully.
20
EX. NO. 05 DEVELOP AN APPLICATION THAT MAKES USE OF DATABASE
DATE:
AIM:
To develop a Simple Android Application that makes use of Database.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno4″ 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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
Designing layout for the Android Application:
● Click on app -> res -> layout -> activity_main.xml.
● Now click on Text as shown below.
● Then delete the code which is there and type the code as given below.
Code for Activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="50dp"
android:layout_y="20dp"
android:text="Student Details"
android:textSize="30sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="20dp"
android:layout_y="110dp"
android:text="Enter Rollno:"
android:textSize="20sp" />
21
<EditText
android:id="@+id/Rollno"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="175dp"
android:layout_y="100dp"
android:inputType="number"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="20dp"
android:layout_y="160dp"
android:text="Enter Name:"
android:textSize="20sp" />
<EditText
android:id="@+id/Name"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="175dp"
android:layout_y="150dp"
android:inputType="text"
android:textSize="20sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="20dp"
android:layout_y="210dp"
android:text="Enter Marks:"
android:textSize="20sp" />
<EditText
android:id="@+id/Marks"
android:layout_width="150dp"
android:layout_height="wrap_content"
22
android:layout_x="175dp"
android:layout_y="200dp"
android:inputType="number"
android:textSize="20sp" />
<Button
android:id="@+id/Insert"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="25dp"
android:layout_y="300dp"
android:text="Insert"
android:textSize="30dp" />
<Button
android:id="@+id/Delete"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="200dp"
android:layout_y="300dp"
android:text="Delete"
android:textSize="30dp" />
<Button
android:id="@+id/Update"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="25dp"
android:layout_y="400dp"
android:text="Update"
android:textSize="30dp" />
<Button
android:id="@+id/View"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_x="200dp"
android:layout_y="400dp"
android:text="View"
23
android:textSize="30dp" />
<Button
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_x="100dp"
android:layout_y="500dp"
android:text="View All"
android:textSize="30dp" />
</AbsoluteLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
Java Coding for the Android Application:
● Click on app -> java -> com.example.exno4 -> MainActivity.
● Then delete the code which is there and type the code as given below.
Code for MainActivity.java:
packagecom.example.exno4;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
24
setContentView(R.layout.activity_main);
Rollno=(EditText)findViewById(R.id.Rollno);
Name=(EditText)findViewById(R.id.Name);
Marks=(EditText)findViewById(R.id.Marks);
Insert=(Button)findViewById(R.id.Insert);
Delete=(Button)findViewById(R.id.Delete);
Update=(Button)findViewById(R.id.Update);
View=(Button)findViewById(R.id.View);
ViewAll=(Button)findViewById(R.id.ViewAll);
Insert.setOnClickListener(this);
Delete.setOnClickListener(this);
Update.setOnClickListener(this);
View.setOnClickListener(this);
ViewAll.setOnClickListener(this);
25
{
// Checking for empty roll number
if(Rollno.getText().toString().trim().length()==0)
{
showMessage("Error", "Please enter Rollno");
return;
}
Cursor c=db.rawQuery("SELECT * FROM student WHERE rollno='"+Rollno.getText()+"'", null);
if(c.moveToFirst())
{
db.execSQL("DELETE FROM student WHERE rollno='"+Rollno.getText()+"'");
showMessage("Success", "Record Deleted");
}
else
{
showMessage("Error", "Invalid Rollno");
}
clearText();
}
// Updating a record in the Student table
if(view==Update)
{
// Checking for empty roll number
if(Rollno.getText().toString().trim().length()==0)
{
showMessage("Error", "Please enter Rollno");
return;
}
Cursor c=db.rawQuery("SELECT * FROM student WHERE rollno='"+Rollno.getText()+"'", null);
if(c.moveToFirst()) {
db.execSQL("UPDATE student SET name='" + Name.getText() + "',marks='" + Marks.getText() +
"' WHERE rollno='"+Rollno.getText()+"'");
showMessage("Success", "Record Modified");
}
else {
showMessage("Error", "Invalid Rollno");
}
clearText();
}
// Display a record from the Student table
if(view==View)
{
26
// Checking for empty roll number
if(Rollno.getText().toString().trim().length()==0)
{
showMessage("Error", "Please enter Rollno");
return;
}
Cursor c=db.rawQuery("SELECT * FROM student WHERE rollno='"+Rollno.getText()+"'", null);
if(c.moveToFirst())
{
Name.setText(c.getString(1));
Marks.setText(c.getString(2));
}
else
{
showMessage("Error", "Invalid Rollno");
clearText();
}
}
// Displaying all the records
if(view==ViewAll)
{
Cursor c=db.rawQuery("SELECT * FROM student", null);
if(c.getCount()==0)
{
showMessage("Error", "No records found");
return;
}
StringBuffer buffer=new StringBuffer();
while(c.moveToNext())
{
buffer.append("Rollno: "+c.getString(0)+"\n");
buffer.append("Name: "+c.getString(1)+"\n");
buffer.append("Marks: "+c.getString(2)+"\n\n");
}
showMessage("Student Details", buffer.toString());
}
}
public void showMessage(String title,String message)
{
Builder builder=new Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
27
builder.setMessage(message);
builder.show();
}
public void clearText()
{
Rollno.setText("");
Name.setText("");
Marks.setText("");
Rollno.requestFocus();
}
}
● So now the Coding part is also completed.
● Now run the application to see the output.
OUTPUT:
28
29
RESULT:
Thus a Simple Android Application that makes use of Database is developed and executed
successfully.
30
EX. NO. 06 DEVELOP AN APPLICATION THAT MAKES USE OF
DATE: NOTIFIACATION MANAGER
AIM:
To develop an Android Application that makes use of Notification Manager.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno5″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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
31
<Button
android:id="@+id/btnNotificationImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification With Image" />
<Button
android:id="@+id/btnNotificationWithGroupConvo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification With Group Conversation" />
<Button
android:id="@+id/btnNotificationSemantic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Notification Semantic Action" />
</LinearLayout>
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import androidx.core.app.NotificationCompat;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.Person;
import androidx.core.graphics.drawable.IconCompat;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
32
import android.widget.Toast;
import java.util.Date;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
NotificationManager notificationManager;
NotificationCompat.Builder builder;
NotificationChannel channel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
charSequence = btnNotificationIcon.getText();
btnSimpleNotification.setOnClickListener(this);
btnNotificationIcon.setOnClickListener(this);
btnNotificationImage.setOnClickListener(this);
btnNotificationWithGroupConvo.setOnClickListener(this);
btnNotificationSemantic.setOnClickListener(this);
notificationManager.createNotificationChannel(channel);
33
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnSimpleNotification:
simpleNotification();
break;
case R.id.btnNotificationIcon:
notificationWithIcon();
break;
case R.id.btnNotificationImage:
notificationWithImage();
break;
case R.id.btnNotificationWithGroupConvo:
notificationWithGroupConvo();
break;
case R.id.btnNotificationSemantic:
notificationSemantic();
break;
}
}
private void simpleNotification() {
Person jd = new Person.Builder().setName("JournalDev ") .setImportant(true) .build();
new NotificationCompat.MessagingStyle(jd)
.addMessage("Check me out", new Date().getTime(), jd) .setBuilder(builder);
notificationManager.notify(1, builder.build());
}
private void notificationWithIcon() {
Person anupam = new Person.Builder()
.setName("Anupam")
.setIcon(IconCompat.createWithResource(this, R.drawable.index))
.setImportant(true) .build();
new NotificationCompat.MessagingStyle(anupam)
.addMessage("Check out my latest article!", new Date().getTime(), anupam)
.setBuilder(builder);
34
notificationManager.notify(2, builder.build());
}
private void notificationWithImage() {
Person bot = new Person.Builder()
.setName("Bot") .setImportant(true)
.setBot(true) .build();
new NotificationCompat.MessagingStyle(bot)
.addMessage(message) .setGroupConversation(true).setBuilder(builder);
notificationManager.notify(3, builder.build());
}
private void notificationWithGroupConvo()
{
Person jd = new Person.Builder()
.setName("JournalDev") .build();
35
.setConversationTitle("Sample Conversation")
.setBuilder(builder);
notificationManager.notify(4, builder.build());
}
private void notificationSemantic()
{
Person jd = new Person.Builder()
.setName("JournalDev")
.build();
NotificationCompat.Action replyAction =
new NotificationCompat.Action.Builder(
R.drawable.bg, "MARK READ", pendingIntent)
.setSemanticAction(NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ)
.build();
NotificationCompat.Builder separateBuilder = builder;
separateBuilder.addAction(replyAction);
new NotificationCompat.MessagingStyle(bot)
36
.addMessage("Hi. How are you?", new Date().getTime(), anupam)
.addMessage(message)
.addMessage("Does this image look good?", new Date().getTime(), bot)
.addMessage("Looks good!", new Date().getTime(), jd)
.setGroupConversation(true)
.setConversationTitle("Sample Conversation")
.setBuilder(separateBuilder);
notificationManager.notify(5, separateBuilder.build());
}
@Override
protected void onResume() {
super.onResume();
RESULT:
Thus Android Application that makes use of notification manager is developed and executed
successfully.
37
EX. NO. 07
DATE:
AIM:
To develop an Android Application that implements Multithreading.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno6″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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
<ImageView
android:id="@+id/imageView"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_margin="50dp"
android:layout_gravity="center" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_gravity="center"
android:text="Load Image 1" />
38
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_gravity="center"
android:text="Load image 2" />
</LinearLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
bt1 = (Button)findViewById(R.id.button);
bt2= (Button) findViewById(R.id.button2);
img = (ImageView)findViewById(R.id.imageView);
39
bt1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread(new Runnable()
{
@Override
public void run()
{
img.post(new Runnable()
{
@Override
public void run()
{
img.setImageResource(R.drawable.india1);
}
});
}
}).start();
}
});
bt2.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
new Thread(new Runnable()
{
@Override
public void run()
{
img.post(new Runnable()
{
@Override
public void run()
{
img.setImageResource(R.drawable.india2);
}
});
}
40
}).start();
}
});
}
}
OUTPUT:
RESULT:
Thus Android Application that implements Multithreading is developed and executed successfully.
41
DEVELOP A NATIVE APPLICATION THAT USES GPS LOCATION
EX. NO. 08
INFORMATION
DATE:
AIM:
To develop an Android Application that uses GPS location information.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno7″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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
<Button
android:id = "@+id/button"
android:layout_width = "fill_parent"
android:layout_height = "wrap_content"
android:text = "getlocation"/>
</LinearLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
42
Following will be the content of res/values/strings.xml to define two new constants -
<?xml version = "1.0" encoding = "utf-8"?>
<resources>
<string name = "app_name">Tutorialspoint</string>
</resources>
</manifest>
43
Code for MainActivity.java:
packagecom.example.exno7;
import android.Manifest;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.test.mock.MockPackageManager;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
Button btnShowLocation;
private static final int REQUEST_CODE_PERMISSION = 2;
String mPermission = Manifest.permission.ACCESS_FINE_LOCATION;
// GPSTracker class
GPSTracker gps;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
if (ActivityCompat.checkSelfPermission(this, mPermission)
!= MockPackageManager.PERMISSION_GRANTED) {
44
// show location button click event
btnShowLocation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// create class object
gps = new GPSTracker(MainActivity.this);
// \n is for newline
Toast.makeText(getApplicationContext(), "Your Location is - \nLat: "
+ latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
}else{
// can't get location
// GPS or Network is not enabled
// Ask user to enable GPS/network in settings
gps.showSettingsAlert();
}
}
});
}
}
● Following is the content of the modified main activity file GPSTracker.java.
Code for GPDTracker.Java
packagecom.example.exno7;
import android.app.AlertDialog;
import android.app.Service;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
import android.provider.Settings;
45
import android.util.Log;
public class GPSTracker extends Service implements LocationListener {
46
if (!isGPSEnabled && !isNetworkEnabled) {
// no network provider is enabled
} else {
this.canGetLocation = true;
// First get location from Network Provider
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("Network", "Network");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location!= null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
if (location!= null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
47
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
/**
* Stop using GPS listener
* Calling this function will stop using GPS in your app
* */
public voidstopUsingGPS(){
if(locationManager!= null){
locationManager.removeUpdates(GPSTracker.this);
}
}
/**
* Function to get latitude
* */
// return latitude
return latitude;
}
/**
* Function to get longitude
* */
48
}
// return longitude
return longitude;
}
/**
* Function to check GPS/wifi enabled
* @return boolean
* */
/**
* Function to show settings alert dialog
* On pressing Settings button will lauch Settings Options
* */
49
});
@Override
public void onLocationChanged(Location location) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}
● So now the Coding part is also completed.
● Now run the application to see the output.
50
OUTPUT:
RESULT:
Thus Android Application that implements GPS Location Information is developed and executed
successfully.
51
EX. NO. 09
IMPLEMENT AN APPLICATION THAT WRITES DATA TO THE SD CARD
DATE:
AIM:
To develop an Android Application that writes data to the SD Card.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno8″ 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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
52
android:layout_margin="10dp"
android:text="Write Data"
android:textSize="30dp" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Read data"
android:textSize="30dp" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:text="Clear"
android:textSize="30dp" />
</LinearLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
53
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
import android.os.Bundle;
//import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import androidx.appcompat.app.AppCompatActivity;
54
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
write.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String message=e1.getText().toString();
try
{
File f=new File("/sdcard/myfile.txt");
f.createNewFile();
FileOutputStream fout=new FileOutputStream(f);
fout.write(message.getBytes());
fout.close();
Toast.makeText(getBaseContext(),"Data Written in SDCARD",Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(getBaseContext(),e.getMessage(),Toast.LENGTH_LONG).show();
}
}
});
read.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String message;
String buf = "";
try
{
File f = new File("/sdcard/myfile.txt");
FileInputStream fin = new FileInputStream(f);
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
55
while ((message = br.readLine()) != null)
{
buf += message;
}
e1.setText(buf);
br.close();
fin.close();
Toast.makeText(getBaseContext(),"Data Recived from SDCARD",Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
});
clear.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
e1.setText("");
}
});
}
}
56
OUTPUT:
Result:
Thus Android Application that writes data to the SD Card is developed and executed successfully.
57
EX. NO. 10
DATE:
AIM:
To develop an Android Application that creates an alert upon receiving a message.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “ex.no9″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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Message"
android:textSize="30sp" />
58
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="30sp" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:layout_gravity="center"
android:text="Notify"
android:textSize="30sp"/>
</LinearLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
import android.app.Notification;
import android.app.NotificationManager;
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.Button;
import android.widget.EditText;
imp0rt androidx.appcompat.app.AppCompatActivity;
59
Button notify;
EditTexte;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
notify.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
PendingIntent pending = PendingIntent.getActivity(MainActivity.this, 0,intent, 0);
Notification noti = new Notification.Builder(MainActivity.this).setContentTitle("New
Message").setContentText(e.getText().toString()).setSmallIcon(R.mipmap.ic_launcher).setContentIntent(pe
nding).build();
NotificationManager manager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
noti.flags |= Notification.FLAG_AUTO_CANCEL;
manager.notify(0, noti);
}
});
}
}
60
OUTPUT:
RESULT:
Thus Android Application that creates an alert upon receiving a message is developed and executed
successfully.
61
EX. NO. 11
WRITE A MOBILE APPLICATION THAT MAKES USE OF RSS FEED
DATE:
AIM:
To develop an Android Application that makes use of RSS Feed.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno10″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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
62
Code for AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.exno10" >
<uses-permission android:name="android.permission.INTERNET"/>
<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" />
</manifest>
● So now the Permissions are added in the Manifest.
import android.app.ListActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
63
import android.widget.ListView;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
64
// Returns the type of current event: START_TAG, END_TAG, etc..
int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT)
{
if (eventType == XmlPullParser.START_TAG)
{
if (xpp.getName().equalsIgnoreCase("item"))
{
insideItem = true;
}
else if (xpp.getName().equalsIgnoreCase("title"))
{
if (insideItem)
headlines.add(xpp.nextText()); //extract the headline
}
else if (xpp.getName().equalsIgnoreCase("link"))
{
if (insideItem)
links.add(xpp.nextText()); //extract the link of article
}
}
else if(eventType==XmlPullParser.END_TAG && xpp.getName().equalsIgnoreCase("item"))
{
insideItem=false;
}
eventType = xpp.next(); //move to next element
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (XmlPullParserException e)
{
e.printStackTrace();
}
catch (IOException e)
{
65
e.printStackTrace();
}
return null;
}
protected void onPostExecute(ArrayAdapter adapter)
{
adapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, headlines);
setListAdapter(adapter);
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
Uri uri = Uri.parse((links.get(position)).toString());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
public InputStream getInputStream(URL url)
{
try
{
return url.openConnection().getInputStream();
}
catch (IOException e)
{
return null;
}
}
}
● So now the Coding part is also completed.
● Now run the application to see the output.
66
OUTPUT:
RESULT:
Thus Android Application that makes use of RSS Feed is developed and executed successfully.
67
Ex.NO.12 DEVELOP A MOBILE APPLICATION TO SEND AN EMAIL
DATE:
AIM:
To develop an Android Application to send an Email.
PROCEDURE:
Creating a New project:
● Open Android Studio and then click on File -> New -> New project.
● Then type the Application name as “exno11″ 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.
● It will take sometime to build and load the project.
● After completion it will look as given below.
Designing layout for the Android Application:
● Click on app -> res -> layout -> activity_main.xml.
● Now click on Text as shown below.
● Then delete the code which is there and type the code as given below.
68
android:id="@+id/txtMsg"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="top"
android:hint="Message"/>
<Button
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="Send"
android:id="@+id/btnSend"/>
</LinearLayout>
<activity
android:name="com.example.exno11.MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
69
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="message/rfc822"/>
</intent-filter>
</activity>
</application>
</manifest>
import android.content.Intent;
//import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
70
public void onClick(View v) {
Intent it = new Intent(Intent.ACTION_SEND);
it.putExtra(Intent.EXTRA_EMAIL, new String[]{eTo.getText().toString()});
it.putExtra(Intent.EXTRA_SUBJECT,eSubject.getText().toString());
it.putExtra(Intent.EXTRA_TEXT,eMsg.getText());
it.setType("message/rfc822");
startActivity(Intent.createChooser(it,"Choose Mail App"));
}
});
}
}
● So now the Coding part is also completed.
● Now run the application to see the output.
OUTPUT:
RESULT:
Thus android application for sending an email is executed and verified successfully.
71
EX. NO: 13 ANDROID APPLICATION THAT CREATES ALARM CLOCK
DATE:
AIM:
To develop a Android Application that creates Alarm Clock.
PROCEDURE:
</LinearLayout>
● Now click on Design and your application will look as given below.
● So now the designing part is completed.
<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" />
</manifest>
73
● So now the changes are done in the Manifest.
Java Coding for the Android Application:
Java Coding for Main Activity:
● Click on app -> java -> com.example.exno13 -> MainActivity.
● Then delete the code which is there and type the code as given below.
Code for MainActivity.java:
packagecom.example.exno13;
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;
import androidx.appcompat.app.AppCompatActivity;
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)
{
longtime;
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());
74
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();
}
}
75
if (alarmUri == null)
{
alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
}
Ringtone ringtone = RingtoneManager.getRingtone(context, alarmUri);
ringtone.play();
}
}
RESULT:
Thus Android Application that creates Alarm Clock is developed and executed successfully.
76