Full Mad Lab
Full Mad Lab
LABORATORY MANUAL
                               1
            ARASU ENGINEERING COLLEGE, KUMBAKONAM
Vision
    To reach the levels of Teaching-Learning process with societal concerns,
disseminate technical knowledge, to uplift women with moral values and
enhance the role of education with ethical awareness.
Mission
 Concentrated attention towards the lagging student Sect.
 Commitment with a stress on ethical and moral values in shaping the
    individual for the technical needs of the nation.
 Dissemination of technical knowledge with a stress on pragmatic values.
 To alleviate the gap between the learner and the teacher.
 Commitment towards the societal values.
     DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
Vision
    To be in the forefront of Computer Science and Engineering by
producing competing professional with innovative skills, moral values and
societal concerns with a commitment towards building a strong nation.
Mission
 To impart quality education through continuous Teaching- Learning
    process, including interdisciplinary areas that extend the scope of
    Computer Science.
 To develop the problem solving skills, analytical and collaborative
    learning ability of the students to be ready to deal with cutting edge
    technologies worldwide.
   To inculcate strong ethical values and spirit of social commitment
    among students.
                                     2
CS8662            MOBILE APPLICATION DEVELOPMENT LABORATORY
OBJECTIVES:
LIST OF EXPERIMENTS
TOTAL: 60 PERIODS
OUTCOMES:
                                                   3
Ex. No:               Develop an application that uses GUI components, Font and Colors
01
Date:
     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_parent">
<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="bold" />
<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"
                                                       5
    android:textSize="25sp" />
<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.
    
       So now the designing part is completed.
                                                       6
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity
{
  int ch=1;
  float font=30;
  @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:
                                                     7
                   t.setTextColor(Color.MAGENTA);
                   break;
               }
               ch++;
               if (ch == 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.                Develop an application that uses Layout Managers and Event Listeners
02
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="200dp"
   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_column="0"
     android:text="Name"
     android:textSize="20sp"
     android:gravity="center"/>
<EditText
     android:id="@+id/editText"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_margin="10dp"
     android:layout_row="0"
     android:layout_column="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/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.example.devang.exno2.SecondActivity"
  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
      ArrayAdapteradapter=new
      ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_item,dept_array);
      s.setAdapter(adapter);
              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;
                                                           16
Output:
Result:
      Thus a Simple Android Application that uses Layout Managers and Event Listeners is developed and
executed successfully.
                                                  17
 Ex No.                Write an application that draws Basic Graphical Primitives on the screen
 03
 Date:
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 some time 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);
Output:
Result:
       Thus a Simple Android Application that draws basic Graphical Primitives on the screen is developed
and executed successfully.
                                                          20
 Ex. No.                         Develop an application that makes use of database
 04
 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 some time 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:id="@+id/ViewAll"
    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.
   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);
Output:
                                                       28
29
Result:
       Thus a Simple Android Application that makes use of Database is developed and executed
successfully.
                                                30
Ex. No.                Develop an application that makes use of Notification Manager
05
Date:
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 some time to build and load the project.
       After completion it will look as given below.
  <Button
   android:id="@+id/btnSimpleNotification"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Simple Notification" />
  <Button
   android:id="@+id/btnNotificationIcon"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Notification With Icon" />
                                                         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();
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.                Implement an application that uses Multi-threading
06
Date:
Aim:
       To develop an Android Application that implements Multi threading.
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 some time 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);
bt1.setOnClickListener(new View.OnClickListener()
                                                       39
{
   @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 Multi threading is developed and executed successfully.
                                                             41
Ex. No.                   Develop a native application that uses GPS location information
07
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 some time 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);
          }
        });
    }
}
         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 {
     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
* */
/**
  * Function to get latitude
* */
    // return latitude
    return latitude;
}
/**
  * Function to get longitude
* */
    // 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
* */
    @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.                    Implement an application that writes data to the SD Card
08
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 some time to build and load the project.
       After completion it will look as given below.
<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:singleLine="true"
    android:textSize="30dp" />
<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
                                                         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.                Implement an application that creates an alert upon receiving a message
09
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 some time 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;
    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.                         Write a mobile application that makes use of RSS Feed
10
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 some time 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;
import android.widget.ListView;
                                                       63
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.                         Develop a mobile application to send an email.
11
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 some time to build and load the project.
       After completion it will look 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 {
Output:
Result:
     Thus Android Application for sending an email is developed and executed successfully.
                                                              71
Ex. No.                 Develop a Mobile application for simple needs (Mini Project)
12
Date:
Aim:
       To develop a Simple Android Application for Native Calculator.
Procedure:
 Creating a New project:
        Open Android Studio and then click on File -> New -> New project.
        Then type the Application name as “exno12″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 some time to build and load the project.
        After completion it will look as given below.
<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="20dp">
<EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
                                                          72
     android:layout_weight="1"
     android:inputType="numberDecimal"
     android:textSize="20sp" />
<EditText
     android:id="@+id/editText2"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:inputType="numberDecimal"
     android:textSize="20sp" />
</LinearLayout>
<LinearLayout
   android:id="@+id/linearLayout2"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_margin="20dp">
<Button
     android:id="@+id/Add"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="+"
     android:textSize="30sp"/>
<Button
     android:id="@+id/Sub"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:layout_weight="1"
     android:text="-"
     android:textSize="30sp"/>
<Button
     android:id="@+id/Mul"
     android:layout_width="match_parent"
                                            73
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="*"
        android:textSize="30sp"/>
<Button
        android:id="@+id/Div"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="/"
        android:textSize="30sp"/>
</LinearLayout>
<TextView
    android:id="@+id/textView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:text="Answer is"
    android:textSize="30sp"
    android:gravity="center"/>
</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.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
                                                       74
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements OnClickListener
{
    //Defining the Views
    EditText Num1;
    EditText Num2;
    Button Add;
    Button Sub;
    Button Mul;
    Button Div;
    TextView Result;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // set a listener
        Add.setOnClickListener(this);
        Sub.setOnClickListener(this);
        Mul.setOnClickListener(this);
        Div.setOnClickListener(this);
    }
    @Override
    public void onClick (View v)
    {
                                                           75
        float num1 = 0;
        float num2 = 0;
        float result = 0;
        String oper = "";
        // check if the fields are empty
        if (TextUtils.isEmpty(Num1.getText().toString()) || TextUtils.isEmpty(Num2.getText().toString()))
             return;
        // defines the button that has been clicked and performs the corresponding operation
        // write operation into oper, we will use it later for output
        switch (v.getId())
        {
            case R.id.Add:
              oper = "+";
             result = num1 + num2;
             break;
            case R.id.Sub:
              oper = "-";
             result = num1 - num2;
             break;
            case R.id.Mul:
              oper = "*";
             result = num1 * num2;
             break;
            case R.id.Div:
              oper = "/";
             result = num1 / num2;
             break;
            default:
             break;
        }
        // form the output line
        Result.setText(num1 + " " + oper + " " + num2 + " = " + result);
    }
}
                                                             76
      So now the Coding part is also completed.
      Now run the application to see the output.
Output:
Result:
     Thus a Simple Android Application for Native Calculator is developed and executed successfully.
                                                    77