[go: up one dir, main page]

100% found this document useful (1 vote)
386 views56 pages

GPS Tracking System Black Book

Android Jquery Kotlin

Uploaded by

Rohan Pol
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
386 views56 pages

GPS Tracking System Black Book

Android Jquery Kotlin

Uploaded by

Rohan Pol
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 56

ANDROID PHONE THEFT SECURITY

WITH GPS TRACKING SYSTEM

A Project Report
Submitted in partial fulfilment of the
Requirements of the award of the Degree of

BACHELOR OF SCIENCE (INFORMATION TECHNOLOGY)


BY

Rohan Vilas Pol


(4023578)

Under the esteemed guidance of

Mrs. Prachi Sankhe

DEPARTMENT OF INFORMATION TECHNOLOGY

YASHWANT RAO CHAVAN COLLEGE OF ARTS, COMMERCE AND


SCIENCE
(Affiliated to University of Mumbai)
Navi Mumbai, 400709
MAHARASHTRA

2022-2023
YASHWANT RAO CHAVAN COLLEGE OF ARTS, COMMERCE AND
SCIENCE
(Affiliated to University of Mumbai)
Navi Mumbai- MAHARASHTRA-400709

DEPARTMENT OF INFORMATION TECHNOLOGY

CERTIFICATE

This is to certify that the project entitled,” Android Phone Theft Security with GPS Tracking
system”, is bonafide work of ROHAN VILAS POL bearing Seat NO; 4023578 submitted in
partial fulfillment of the requirement for the award of degree of BACHELOR OF SCIENCE
in INFORMATION TECHNOLOGY from University of Mumbai.

Internal Guide Coordinator

External Examiner

Date: College Seal


Abstract

In recent years the mobile has become the valuable part of the human beings. It is necessary
for human begins to have a powerful device which will provide all the facilities other than basic
facility available in mobile phones. Android provide such functionality which enables the
developers to design such applications which will make a simple mobile to smart one. The
proposed system is going to provide the facilities to the users when user is newer to any place
through the application named places directory. Another application of proposed system is
shortest path is going to provide the service to user by mining the shortest distance between
source and destination. The system is to enhance stolen or lost android-based cell phones by
utilizing diverse services like SMS and email. As the use of android mobile phone is expanding
there are chances that someone might stole our personal information for purpose of misuse.
The application will store unique user ID, phone no and email id. When phone is stolen user
will get SMS and a of current location with help of these, we can easily find out the phone.

i
ACNOWLEDGMENT
I sincerely express my deep sense of gratitude to my guide Mrs. Prachi Sankhe, for her
valuable guidance, continuous encouragement and support whenever required and Head of
Department of Computer Technology Prof. Triveni Kaul, for his valuable guidance,
encouragement and timely help given to me throughout the course of this work.

I also would like to take this opportunity to thank our whole-heartedly Honourable Principal
Dr. Laxman Talnikar and our Faculties of Computer Technology department who have
imparted valuable teaching and guidance that has inspired me to attain new goals.

ii
DECLARATION

I hereby declare that the project entitled, “Android Phone Theft Security with GPS Tracking
System” done at Koparkhairne, has not been in any case duplicated to submit to any other
university for the award of any degree. To the best of my knowledge other than me, no one has
submitted to any other university.

The project is done in partial fulfilment of the requirements of the requirements for the award
of degree of BACHELOR OF SCIENCE (INFORMATIN TECHNOLOGY) to be
submitted as final semester project as part of our curriculum.

Rohan Vilas Pol

(Signature of Student)

iii
TABLE OF CONTENTS
Sr No Content Page No

Chapter 1: Introduction 1
1.1 Overview 2
1.2 Problem Statement 2
1.3 Project Description 3
1.3.1 Objectives 3
1.3.2 Purpose 3
1.3.3 Scope 3
Chapter 2: Literature Survey 4
2.1 Literature Survey 5
2.2 Proposed System Ringer 5
2.3 Software Development Tool 6
2.3.1 Introduction to Java 6
2.3.2 Android Software Platform 7
2.3.3 Architecture of Android OS 8
2.3.4 Component of Android 8
2.3.5 Location based Services in Android 9
2.3.6 Eclipse 9
Chapter 3: Methodology 10
3.1 V-Model 11
3.1.1 Verification Phases 12
3.1.2 Validation Phase 13
3.2 Implementation Paths 13
3.2.1 Using the Firebase Authentication SDK 13
3.2.2 Google Analytics for Firebase 14
3.2.3 Key Capabilities 14

iv
3.2.4 Working of Google Analytics 14
3.3 Firebase Cloud Messaging 15
3.3.1 User Key Capabilities 15
3.3.2 Working of Cloud Messaging 16
3.4 Android Studio 16
3.4.1 Introduction 16
3.4.2 Features 17
Chapter 4: Design and Implementation 19
4.1 Class Diagram 20
4.2 Use Case Diagram 21
4.3 Sequence Diagram 22
4.4 Activity Diagram 23
4.5 Deployment Diagram 24
4.6 Modules 25
4.6.1 Implementation of Modules 25
Chapter 5: Software Development 28
5.1 Functional Requirements Modules 30
5.2 Non-Functional Requirements 30
5.3 System Requirements 31
Chapter 6: Coding and Snapshots 32
6.1 Coding 33
6.2 Snapshots 40
Chapter 7: Conclusion and Future Scope 43
7.1 Conclusion 44
7.2 Future Enhancement 44
Chapter 8: References 45

v
List of Tables
Table No. Name of Table Page No.
1 Using the Firebase Authentication SDK 13

2 Key Capabilities 14

3 User key Capabilities 15

4 Technology Interface 16

vi
List of Figures

Figure No Name of Diagram Page No


1 V-Model on GPS Tracking 11

2 Class Diagram 20

3 Use Case Diagram 21

4 Sequence Diagram 22

5 Activity Diagram 23

6 Deployment Diagram 24

vii
Chapter 1
Introduction

1
1.1 Overview of the Project

This report explains all the details of development process for the Location tracking of an
Android device using SMS [Droid Locator] software system.
The main feature of android Locator is to provide location tracking functionalities to Android
devices using SMS. This application locates device by making device ring and get latitude and
longitude of an Android device. Also, the android Locator has the capability of authentication
to Share the location information with the sender of SMS.
The Android application gives the opportunity to share location information with the users
through SMS. In order to do that, the application receives each SMS, matches contents of SMS
with predefined attention word. If attention word matches with the predefined word than
application makes device ringing or get location details of device and acknowledges the user
through SMS.
As a result of technological progress, we are facing an incredible variety of possibilities to
communicate regardless of the distance. Smart phones provide a great choice of features that
facilitate the life for the users as well they make it more comfortable.
Every day the features and capabilities of Mobiles are increasing surprisingly. For this reason,
we want to create an Android application which gives us the opportunity to improve our
knowledge of Mobile developing. We find this project a great opportunity to combine a lot of
technologies and languages in the same software system, and learn how to work in big projects
as a team member. An important motivation for us is the challenge to solve all the problems
that will arise while the project is developed. In addition, we will try to make the program
portable, reliable, Secure, stable, intuitive etc.
[Department of MCA, MIT Mysore | Location Tracking of Android Device Based on SMS.]

1.2 Problem Statement

A silent phone can be extremely tricky to find. If you're in the habit of losing a silent cell
phone, you may wish to invest in a phone sensor, also known as a phone detector. The user
has to follow tedious procedures to find his theft phone and ultimately user may not find his
phone. This Procedure is time consuming too.

2
1.3 PROJECT DESCRIPTION

1.3.1 Objective:

The objective of this project is to provide location tracking functionalities to Android devices
using SMS. This application locates device by making device ring and get latitude and
longitude of an Android device.

1.3.2 Purpose:

If an android user wants to know the location of Android device, then user has to send S5MS5
to designated device. So that he can locate device either by it making ring or gets actual location
of device using GPS or network provider.

1.3.3 Scope:

This project supports only the Android OS and makes communication with the tracker through
SMS messages only. The Architecture, Security and the accuracy of tracking unit itself are the
scope of this project. This single application consists of modules like device.

3
Chapter 2
Literature Survey

4
2.1 Literature Survey:
A silent phone can be extremely tricky to find. If you're in the habit of losing a silent cell phone,
you may wish to invest in a phone sensor, also known as a phone detector. These are tools that,
when placed near a cell phone, will actually pick up the call signal and make sounds to indicate
that the phone is somewhere within proximity. If the phone is lost, all you need to do is have
someone call you as you walk around with the sensor until the device begins to indicate that a
call signal is nearby. When you hear the signal, you then have a basic idea of where to start
looking for your cell phone.

Every phone comes with a unique International Mobile Equipment Identify Number which can
come in useful to track it in case of loss or theft. This number can be accessed by dialling “#06#
and it is advisable to make a note of it as soon as you purchase your handset. In case the phone
gets stolen, file an FIR with the police and give them its identity number.
Pass on a copy of the FIR and IMEI number to your service provider who will then be able to
track your handset. With its IMEI number, a device can be traced even if it is being used with
another SIM or even if it is switched off. Once the handset is located, request your service
provider to block it from being used till you are able to get your hands on it again [1].

2.2 Proposed system Ringer

Using simple SMS commands, you can ring your Android Device even though it is in silent
mode and thus locate your device locally.
[Department of MCA, MIT Mysore | Location Tracking of Android Device Based on SMS
Location Tracking
In this proposed system you can locate any phone that has been misplaced or stolen. Once the
App is installed on the phone, it can be located by sending SMS with predefined keyword. The
system gets you current updated location [1].

5
2.3 Software development tool

2.3.1 Introduction to Java


Java is a programming language created by James Gosling from Sun Microsystems (Sun) in
199]. The first publicly available version of Java (Java 1.0) was released in 1995. Sun
Microsystems was acquired by the Oracle Corporation in 2010. Over time new enhanced
versions of Java have been released. The current version of Java is Java 1.7 which is also known
as Java 7. From the Java programming language, the Java platform evolved. The Java platform
allows software developers to write program code in other languages than the Java
programming language and still runs on the Java virtual machine. The Jove platform is usually
associated with
the Jove virtual machine and the Java core libraries.

The Java virtual machine (JVM) is a software implementation of a computer that executes
programs like a real machine. The Java virtual machine is written specifically for a specific
operating system, e.g., for Linux a special implementation is required as well as for Windows.
Java Runtime Environment vs. Java Development Kit.
A Java distribution comes typically in two flavours, the Java Runtime Environment (JRE) and
the Java Development Kit (JDK). The Java runtime environment (JRE) consists of the JVM
and the Java class libraries and contains the necessary functionality to start Java programs. The
JDK contains in addition the development tools necessary to create Java programs. The JDK
consists therefore of a Java compiler, the Java virtual machine, and the Java class libraries [2].
The target of Java is to write a program once and then run this program on multiple operating
systems.

Platform independent: Java programs use the Java virtual machine as abstraction and do not
access the operating system directly. This makes Java programs highly portable. A Java
program (which is standard complaint and follows certain rules) can run unmodified on all
supported platforms, e.g., Windows or Linux.
Object-orientated programming language: Except the primitive data types, all elements in
Java is objects.

6
Java is strongly-typed, e.g., the types of the used be done in most cases by the programmer.
Java source code is transferred into the byte code format which does not depend on the target
platform. These byte code instructions will be interpreted by the Java Virtual machine (JVM).
The JVM contains a so-called Hotspot-Compiler which translates performance critical byte
code instructions into native code instructions.

Java manages the memory allocation and de-allocation for creating new objects. The program
does not have direct access to the memory. The so-called garbage collector deletes
automatically objects to which no active pointer exists.

2.3.2 Android is a software platform and operating system for mobile


devices.

Android is available as open source. It allows developers to write managed code in the Java
language, controlling the device via Google-developed Java libraries.
Location Tracking of Android Device Based on SMS [3].
Android SDK was released by Open Handset Alliance in the month of November of the year
2007. Android is actually developed using the kernel of Linux 2.6 and the highlighting features
of Android include the following [7]:
• No fees for licensing, distribution and release approval
• GSM, 3G EDGE networks for telephony

• IPC message passing.

• Background processes and applications

• Shared data stores

• Complete multimedia hardware control

• APIs for location-based services such as GPS.

7
2.3.3 Architecture of Android OS the skeleton of Android framework and its
constituents are shown in the following figure:

The next layer contains the native libraries of Android. These shared libraries are all written in
C or C++, compiled for the particular hardware architecture used by the phone and preinstalled
by the phone vendor. Android Runtime Layer
Android Runtime layer includes Dalvik Virtual Machine (DVM) and a set of core java libraries.
Every Android app gets its own instance of DVM. Dalvik has been written so that a device can
run multiple virtual machines efficiently and it executes files with dex (Dalvin Executable
Format) extension optimized for minimum memory [4].

2.3.4 Components of Android

The basic components of an Android application include Activity, Broadcast Receiver, Service,
and Content Provider. Each of these which when used for any application has to be declared in
the AndroidManifest.xml. The user interface of the component is determined by the Views.
For the communication among these basic components, we use Intents and Intent filters which
play crucial role during app development.
Figure 2.2: Structure of Android Components

An Activity is, fundamentally, an object that has a lifecycle. An Activity is a chunk of code
that does some work; if necessary, that work can include displaying a UI to the user. It
doesn't have to; though-some Activities never display UL. Typically, we will designate one
of our application's Activities as the entry point to our application.
Broadcast Receiver
Broadcast Receiver is yet another type of component that can receive and respond to any
broadcast announcements.[3].

A Service is a body of code that runs in the background. It can run in its own process or in the
context of another application's process, depending on its needs. Other components "bind" to a
Service and invoke methods on it via remote procedure calls. An example of a Service is a
media player; even when the user quits the media-selection UL, she probably still intends for
her music to keep playing. A Service keeps the music going even when the UL has completed.

8
Content Provider is a data storehouse that provides access to data on the device; the classic
example is the Content Provider that’s used to access the user's list of contacts. Our application
can access data that other applications have exposed via a Content Provider, and we can also
define our own Content Providers to expose data of our own [5].

2.3.5 Location based Services in Android

Android's Network Location Provider determines user location using cell tower and Wi-Fi
signals, providing location information in a way that works indoor and outdoor, responds faster,
and uses less battery power. The purpose of location-based services is to find the Physical
location of the device. Access to the location-based services is handled by the Location
Manager system Service. To access the Location Manager, request an instance of the
LOCATION_SERVICE using the get System Service () method. Current Location can be
fetched using two Ways:
1. GPS (Global Positioning System)

2. Network Service Location

GPS (Global Positioning System)

The Global Positioning System (GPS) uses a constellation of 24 satellites orbiting the earth.
GPS finds the user position by calculating differences in the times the signals, from different
satellites, take to reach the receiver. GPS signals are decoded, so the smart phone must have
in-built GPS receiver. To get access to GPS hardware of android we request using following
statement Location Manager. GPS_PROVIDER;

2.3.6 Eclipse
Eclipse is a multi-language software development environment comprising an integrated
development environment (IDE) and an extensible plug-in system. It can be used to develop
applications in Java and, by means of various plug-ins, other programming languages like c,
c++, android etc.... Features
1) Itis an open source.

2) Itis strongly recommended by Android developer.

3) It has good UI user interface.

9
Chapter 3
Methodology

10
3.1: V-Model

The V-model represents a software development process (also applicable to hardware


development) which may be considered an extension of the waterfall model. Instead of moving
down in a linear way, the process steps are bent upwards after the coding phase, to form the
typical VO shape. The V-Model demonstrates the relationships between each phase of the
development life cycle and its associated phase of testing. The horizontal and vertical axes
represent time or project completeness (left-to-right) and level of abstraction (coarsest-grain
abstraction uppermost}, respectively.

11
3.1.1 Verification Phases

The user requirements document will typically describe the system's functional, interface,
performance, data, security, etc. requirements as expected by the user. It is used by business
analysts to communicate their understanding of the system to the users. The users carefully
review this document as this document would serve as the guideline for the system designers
in the system design phase.
Systems design is the phase where system engineers analyse and understand the business of
the proposed system by studying the user requirements document. They figure out possibilities
and techniques by which the user requirements can be implemented. If any of the requirements
are not feasible, the user is informed of the issue. A resolution is found and the user requirement
document is edited accordingly. Architecture Design
The phase of the design of computer architecture and software architecture can also be referred
to as high- level design. The baseline in selecting the architecture is that it should realize all
which typically consists of the list of modules, brief functionality of each module, their
interface relationships, dependencies, database tables, architecture diagrams, technology
details etc. The integration testing design is carried with in the particular phase. Module Design
The module design phase can also be referred to as low-level design. The designed system is
broken up into smaller units or modules and each of them is explained so that the programmer
can start coding directly. The low-level design document or program specifications will contain
a detailed functional logic of the module, in pseudo code:
« Database tables, with all elements, including their type and size. « All interface details with
complete API references.
« All dependency issues.
• Error message listings.
= Complete input and outputs for a module.

12
3.1.2 Validation Phases (Unit testing)

Try to detect if all application functions work correct individually. Integration testing
Try the detect if all these functions are accessible in our application and they are properly
Into grated.
System Testing System testing checks if the integrated product meets the specified
requirements. Acceptance Testing
Acceptance testing is the phase of testing used to determine whether a system satisfies the
requirements specified in the requirements analysis phase. The acceptance test design is
derived from the requirements document. The acceptance test phase is the phase used by the
customer to determine whether to accept the system or not.

3.2 Implementation paths


3.2.1 Using the Firebase Authentication SDK

1.Set up sign-in methods For email address and password or phone number sign-in and
any federated identity providers you want to support, enable
them in the Firebase console and complete any configuration
required by the identity provider, such as setting your OAuth
redirect URL.
2.Implement UI flows for your For email address and password sign-in, implement a flow
sign-in methods that prompts users to type their email addresses and
passwords. For phone number sign-in, create a flow that
prompts users for their phone number, and then for the code
from the SMS message they receive. For federated sign-in,
implement the flow required by each provider.
3.Pass the user's credentials to the Pass the user's email address and password or the OAuth
Firebase Authentication SDK token that was acquired from the federated identity provider
to the Firebase Authentication SDK.

13
3.2.2 Google Analytics for Firebase

Google Analytics for Firebase is a free app measurement solution that provides insight on app
usage and user engagement.[9]

At the heart of Firebase is Google Analytics for Firebase, a free and unlimited analytics
solution. Analytics integrates across Firebase features and provides you with unlimited
reporting for up to 500 distinct events that you can define using the Firebase SDK. Analytics
reports help you understand clearly how your users behave, which enables you to make
informed decisions regarding app marketing and performance optimizations.

3.2.3 Key Capabilities

Unlimited Reporting Analytics provides unlimited reporting on up


to 500 distinct events.
Audience Segmentation Custom audiences can be defined in the
Firebase console based on device data,
custom events, or user properties. These
audiences can be used with other Firebase
features when targeting new features or
notification messages.

3.2.4 Working of Google Analytics

Google Analytics for Firebase helps you understand how people use your iOS or Android app.
The SDK automatically captures a number of events and user properties and also allows you
to define your own custom events to measure the things that uniquely matter to your business.
Once the data is captured, it's available in a dashboard through the Firebase console. This
dashboard provides detailed insights about your data — from summary data such as active
users and demographics, to more detailed data such as identifying your most purchased items.

14
Analytics also integrates with a number of other Firebase features. For example, it
automatically logs events that correspond to notification messages sent via the Notifications
composer and provides reporting on the impact of each campaign.

Analytics helps you understand how your users behave, so you can make informed decisions
about how to market your app. See the performance of your campaigns across organic and paid
channels to understand which methods are most effective at driving high-value users. If you
need to perform custom analysis or join your data with other sources you can link which allows
for more complex analysis like querying large data sets and joining multiple data sources.

3.3 Firebase Cloud Messaging

Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably
deliver messages at no cost.

Using FCM, you can notify a client app that new email or other data is available to sync. You
can send notification messages to drive user re-engagement and retention.

3.3.1 User key Capabilities

Send notification messages or data messages Send notification messages that are displayed
to your user. Or send data messages and
determine completely what happens in your
application code.
Versatile message targeting Distribute messages to your client app in any
of 3 ways—to single devices, to groups of
devices, or to devices subscribed to topics.
Send messages from client apps Send acknowledgments, chats, and other
messages from devices back to your server
over FCM’s reliable and battery-efficient
connection channel.

15
3.3.2 Working of Cloud Messaging

Firebase Cloud Messaging architecture diagram


An FCM implementation includes two main components for sending and receiving:

A trusted environment such as Cloud Functions for Firebase or an app server on which
to build, target, and send messages.[10]
1. An iOS, Android, or web (JavaScript) client app that receives messages.

3.4 Android Studio


3.4.1 Introduction

Android Studio is available for three platforms – Windows OS, Mac OS X, and Linux. The
procedures for the installation as well as the latest IDE package can be downloaded from

https://developer.android.com/sdk/installing/studio.html.

• A New Integrated Development Environment

Android Studio is an integrated development environment (IDE) released by Google during


the Google I/O developers’ event last May 2013. This brand-new IDE is made exclusively for
Android development and is intended to be an alternative support for application creation. The
most recent release, version 0.4.2, is capable of supporting designing, testing, and debugging,
although several features are still incomplete or not yet implemented since it is in early access
preview.[18]

• Java Development Kit and Java Runtime Environment

To develop using Android Studio, the Java Development Kit (JDK) and Java Runtime
Environment (JRE) have to be installed. Guidelines on the installation can be found in the
Oracle

Documentation site : http://docs.oracle.com/javase/7/docs/webnotes/install/index.html.

16
Android Studio was announced on May 16, 2013 at the Google I/O conference. It was in early
access preview stage starting from version 0.1 in May 2013, then entered beta stage starting
from version 0.8 which was released in June 2014. The first stable build was released in
December 2014, starting from version 1.0. The current stable version is 3.3, which was released
in January 2019.

3.4.2Features
The following features are provided in the current stable version:

• Gradle-based build support Android-specific refactoring and quick fixes.


• Lint tools to catch performance, usability, version compatibility and other problems
• ProGuard integration and app-signing capabilities
• Template-based wizards to create common Android designs and components
• A rich layout editor that allows users to drag-and-drop UI components, option to
preview layouts on multiple screen configurations
• Support for building Android Wear apps
• Built-in support for Google Cloud Platform, enabling integration with Firebase Cloud
Messaging (Earlier 'Google Cloud Messaging') and Google App Engine
• Android Studio supports all the same programming languages of IntelliJ e.g. Java, C++,
and more with extensions, such as Go; and Android Studio 3.0 or later supports Kotlin
and "Java 7 language features and a subset of Java 8 language features that vary by
platform version." External projects back port some Java 9 features. While IntelliJ that
Android Studio is built on supports all released Java versions, and Java 12, it's not clear
to what level Android Studio supports Java versions up to Java 12 (the documentation
mentions partial Java 8 support).

• Android Studio Components


Android Studio was based on the Java IDE called IntelliJ IDEA; hence, IntelliJ IDEA’s Android
Plug-in and Android Studio are built from the same code. Migration from Eclipse to Android
Studio requires getting accustomed to the differences in terminologies, file structure, interface,
and developer tools.[17]

17
• Terminology
Changes in the terminology between the Eclipse and Android Studio interface are shown in
Table 1.
Eclipse Android Studio
Workspace/Project Project
Project Module
Run Configuration Run Configuration
Library Module Library

18
Chapter 4
Design And Implementation

19
4.1 Class Diagram

A class diagram in the Unified Modelling Language (UML) is a type of static structure
diagram that describes the structure of a system by showing the system's classes, their
attributes, operations (or methods), and the relationships among objects.

20
4.2 Use Case Diagram

Use case diagrams are usually referred to as behavior diagrams used to describe a set of
actions that some system or systems should or can perform in collaboration with one or
more external users of the system. Each use case should provide some observable and
valuable result to the actors or other stakeholders of the system.

21
4.3 Sequence Diagram

A sequence diagram shows object interactions arranged in time sequence. It depicts the objects
and classes involved in the scenario and the sequence of messages exchanged between the
objects needed to carry out the functionality of the scenario. Sequence diagrams are sometimes
called event diagrams or event scenarios.

22
4.4 Activity Diagram

Activity diagram is another important diagram in UML to describe the dynamic aspects of the
system. Activity diagram is basically a flowchart to represent the flow from one activity to
another activity. The activity can be described as an operation of the system. The control flow
is drawn from one operation to another.

23
4.5 Deployment Diagram

A deployment diagram is a UML diagram type that shows the execution architecture of a
system, including nodes such as hardware or software execution environments, and the
middleware connecting them. Deployment diagrams are typically used to visualize the physical
hardware and software of a system.

After designing the new system, the whole system is required to be converted into computer
understanding language. Coding the new system into computer programming language does
this. It is an important stage where the defined procedures are transformed into control
specifications by the help of a computer language. This is also called the programming phase
in which the programmer converts the program specifications into computer instructions,
which we refer as programs. The programs coordinate the data movements and control the
entire process in a system.

24
It is generally felt that the programs must be modular in nature. This helps in fast development,
maintenance and future change, if required.
The validity and proper functionality of all the modules of the developed application is assured
during the process of implementation. Implementation is the process of assuring that the
information system is operational and then allowing user to take over its operation for use and
evaluation.
Implementation is the stage in the project where the theoretical design is turned into a working
system. The implementation phase constructs, installs and operated the new system. The most
crucial stage in achieving anew successful system is that it works effectively and efficiently.

4.6 MODULES

1. Send attention word text: ® Perform predefined action according to alert word and abort
broadcasting.
2. Send text other than attention word:
3. Make device ring.

4. Acknowledges device ringing status to the user by sending SMS.


5. Get latitude and longitude of device and create a Google map link.
6. Send device location to sender of SMS.

7. Exit Application

4.6.1 IMPLEMENTATION OF MODULES

4.6.1.1 Broadcast receiver that alerts application when each new SMS arrived.

This module decides which action has to perform when attention word matches with the
keyword “ring my device”. If it is matched then it starts activity which enables device ringing.
If attention word matches with the keyword “get location” then it starts activity which retrieves
location of device and sends information to the sender of SMS. At the same time, it aborts
message broadcasting so that message can't be reached to Inbox of native messaging
application.
If attention word is not matched with the specified key word than it simply allows broadcasting
so that message can be reached to inbox of native messaging application.

25
Step 1: START
Step 2:5MS received.
Step 3: Checks attention word.
Step 4:1f attention word matches with “ring my device” then starts ringing activity and abort
broadcasting.
Step 5:1f attention word matches with “get location” then starts ringing activity and abort
broadcasting.
Step 6: If attention word not matched then allow broadcasting.
Step 7: End

4.6.1.2 Enable device ringing and acknowledges the user.

In this module we provide the functionality of making device ringing by sending an attention
word to android device. Android Locator recognizes the keyword “ringmydevice™” and
makes device ringing no matter it is in silent or vibrate mode. So, user can locate his phone.
Step 1: START
Step 2: Checks device it in silent or vibrate mode.
Step 3:1f it is in silent or vibrate mode than set device to ringing mode.
Step 4: Enable device ringing.
Step 5: Acknowledges user that device ringing by sending device status information to user.
Step 6: If user found phone and clicks phone found button then stop ringing.
Step 7: End

4.6.1.3 Get location and Acknowledges user.


Received attention word text & “get location”.
In this module we provide the functionality of getting location details of device and the same
will be sent to user. Android Locator recognizes the keyword “get location”, retrieves latitude
and longitude of device, creates a Google map link and the same will be sent to sender of SMS.
So, user can locate his phone.
Step 1: START
Step 2: Checks that internet is available.
Step 3: If internet is available then get location details from Network Provider.
Step 4: If internet is not available then Checks is GPS turned on.
Step 5: If GPS is available then get location details.

26
Step 6: Send location information to user.
Step 7: End.

27
Chapter 5
Software Development

28
Software Requirement Specification (SRS) is the starting point of the software development
activity. It is a complete description of the behaviour of a system which is to be developed. The
SRS document enlists all necessary requirements for project development. To derive the
requirements, we need to have clear and thorough understanding of the product which is to be
developed. This is prepared after detailed communication with project team and the customer.
An SRS is a comprehensive description of the intended purpose and environment for software
under development. The SKS fully describes what the software will do and how it will be
expected to perform.
An SRS minimizes the time and effort required by developers to achieve desired goals and also
minimizes the development cost. A good SRS defines how an application will interact with
system hardware, other programs and human users in a wide variety of real-world situations,
Characteristics of SRS:
« Correct - An SES is correct if, and only if, every requirement stated therein is one that the
software shall meet. Traceability makes this procedure easier and less prone to error.
« Unambiguous - An SRS is unambiguous if, and only if, every requirement stated therein has
only one interpretation. As a minimum, this requires that each characteristic of the final product
be described using a single unique term.
• Verifiable — It is verifiable if there exists some finite cost-effective process with which
a person or machine check whether software product meets requirements.

« Consistent - Consistency refers to internal consistency. If an SRS does not agree with

Some higher-level document, such as a system requirements specification, then it is not


[Department of MCA, MIT Mysore | Location Tracking of Android Device Based on SMS
correct. An SRS is internally consistent if, and only if, no subset of individual requirements
described in it conflict.
« Modifiable — SKS is said to be modifiable if its structure and style are such that any changes
to the requirements can be made easily, completely and consistently while retaining the
structure and style.
• Traceable — SES is said to be traceable if the origin of each of its requirements is clear
and it facilitates the referencing of each requirement in future enhancement.
• Ranked for importance or stability — SES is ranked for importance or stability if each
requirement in it has an identifier to indicate either the importance or stability of that
particular requirement.

29
5.1 Functional Requirements Modules:

This application contains two important modules. Ringer Location Tracker


1. Ringer
• Be able to recognize the attention word received through SMS. « Be able to handle the
phone state to ring automatically.

• Be able to send phone state through SMS.

2. Location Tracking
• Be able to detect the current location of Android device.
• Be able to retrieve the device, SIM card & location details.

• Be able to send retrieved details through SMS.

5.2 Non-Functional Requirements

• Application must respond within 5 seconds excluding GPS enabling time. The user must
use the required option to get the information of the users. Reliability:
• This application has various other features like SMS this can be extensible with many
features in the user devices. Availability:
• This proposed system finds extended application who are installed this application those
users can be get the location of the device and send the details back to requesting phone.
Maintainability:
• Since we are using JAVA software to support our application no maintenance is very easy
and economical also.
• It is better to use the antivirus and keep on checking for the latest updates of the
application. Security Requirements:
• The application will prompt the user for upgrading and downloading new features updated
by the developer.

30
5.3 System Requirements

HARDWARE REQUIREMENTS
On Developer Side Processor Dual core or above. RAM: AGB. Hard disk 40GB or above.
Monitor 13° LCD or CRT Monitor or above. Keyboard Standard windows keyboard On Client-
Side Device: GPS enabled Android OS mobile.
SOFTWARE REQUIREMENTS
Development Kit Android SDK 2.3, Java JDK 1.6.
Languages Java. IDE: Eclipse Helios, Android Emulator, And Platform: Window T/XP. 4.5
USE CASE DIAGRAM
A use case is a coherent piece of functionality that a system provides interacting with actors. It
describes a system which involves a set of use cases and a set of actors. A use case diagram
summarizes who uses our application or system and what they can do with it.
By use case diagram we can achieve,
« The scenario in which our application interacts with people, organizations or external
systems.
« The goals that it helps those actors to achieve.

• The scope of our system. The components included in it are as follows.

Actor- Actors represent classes of users, organizations, and external systems that
interact with your system. * Use Cases - Use cases represent the activities that actors
perform with the help of your system.

31
Chapter 6
Coding and Snapshots

32
6.1 Coding

Navigation.Java:
package androidx.navigation;

import android.os.Bundle;
import p000a.C0001b;
import p000a.C0002c;

/* renamed from: androidx.navigation.a */


public final class C0758a implements C0780m {

/* renamed from: a */
public final int f2343a;

public C0758a(int i) {
this.f2343a = i;
}

/* renamed from: b */
public final Bundle mo3668b() {
return new Bundle();
}

/* renamed from: c */
public final int mo3669c() {
return this.f2343a;
}

public final boolean equals(Object obj) {


if (this == obj) {
return true;
}
return obj != null && C0758a.class == obj.getClass() && this.f2343a
== ((C0758a) obj).f2343a;
}

public final int hashCode() {


return 31 + this.f2343a;
}

public final String toString() {


return
C0001b.m15e(C0002c.m21d("ActionOnlyNavDirections(actionId="), this.f2343a,
")");
}
}

33
Map.java:
package androidx.navigation;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import androidx.navigation.C0807v;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import p000a.C0001b;
import p000a.C0002c;

@C0807v.C0808a("activity")
/* renamed from: androidx.navigation.b */
public final class C0759b extends C0807v<C0760a> {

/* renamed from: a */
public Context f2344a;

/* renamed from: b */
public Activity f2345b;

/* renamed from: androidx.navigation.b$a */


public static class C0760a extends C0778l {

/* renamed from: i */
public Intent f2346i;

/* renamed from: j */
public String f2347j;

public C0760a(C0807v<? extends C0760a> vVar) {


super(vVar);
}

/* renamed from: f */
public final void mo3676f(Context context, AttributeSet
attributeSet) {
super.mo3676f(context, attributeSet);
TypedArray obtainAttributes =
context.getResources().obtainAttributes(attributeSet, C0810x.f2454a);
String string = obtainAttributes.getString(4);
if (string != null) {
string = string.replace("${applicationId}",
context.getPackageName());
}
if (this.f2346i == null) {
this.f2346i = new Intent();
}
this.f2346i.setPackage(string);
String string2 = obtainAttributes.getString(0);

34
if (string2 != null) {
if (string2.charAt(0) == '.') {
string2 = context.getPackageName() + string2;
}
ComponentName componentName = new ComponentName(context,
string2);
if (this.f2346i == null) {
this.f2346i = new Intent();
}
this.f2346i.setComponent(componentName);
}
String string3 = obtainAttributes.getString(1);
if (this.f2346i == null) {
this.f2346i = new Intent();
}
this.f2346i.setAction(string3);
String string4 = obtainAttributes.getString(2);
if (string4 != null) {
Uri parse = Uri.parse(string4);
if (this.f2346i == null) {
this.f2346i = new Intent();
}
this.f2346i.setData(parse);
}
this.f2347j = obtainAttributes.getString(3);
obtainAttributes.recycle();
}

public final String toString() {


ComponentName componentName;
Intent intent = this.f2346i;
String str = null;
if (intent == null) {
componentName = null;
} else {
componentName = intent.getComponent();
}
StringBuilder sb = new StringBuilder();
sb.append(super.toString());
if (componentName != null) {
sb.append(" class=");
sb.append(componentName.getClassName());
} else {
Intent intent2 = this.f2346i;
if (intent2 != null) {
str = intent2.getAction();
}
if (str != null) {
sb.append(" action=");
sb.append(str);
}
}
return sb.toString();
}
}

public C0759b(Context context) {


this.f2344a = context;
while (context instanceof ContextWrapper) {
if (context instanceof Activity) {
this.f2345b = (Activity) context;

35
return;
}
context = ((ContextWrapper) context).getBaseContext();
}
}

/* renamed from: a */
public final C0778l mo3673a() {
return new C0760a(this);
}

/* renamed from: b */
public final C0778l mo3674b(C0778l lVar, Bundle bundle, C0786r rVar) {
Intent intent;
int intExtra;
C0760a aVar = (C0760a) lVar;
if (aVar.f2346i != null) {
Intent intent2 = new Intent(aVar.f2346i);
if (bundle != null) {
intent2.putExtras(bundle);
String str = aVar.f2347j;
if (!TextUtils.isEmpty(str)) {
StringBuffer stringBuffer = new StringBuffer();
Matcher matcher =
Pattern.compile("\\{(.+?)\\}").matcher(str);
while (matcher.find()) {
String group = matcher.group(1);
if (bundle.containsKey(group)) {
matcher.appendReplacement(stringBuffer, "");

stringBuffer.append(Uri.encode(bundle.get(group).toString()));
} else {
throw new IllegalArgumentException("Could not
find " + group + " in " + bundle + " to fill data pattern " + str);
}
}
matcher.appendTail(stringBuffer);
intent2.setData(Uri.parse(stringBuffer.toString()));
}
}
if (!(this.f2344a instanceof Activity)) {
intent2.addFlags(268435456);
}
if (rVar != null && rVar.f2422a) {
intent2.addFlags(536870912);
}
Activity activity = this.f2345b;
if (!(activity == null || (intent = activity.getIntent()) ==
null || (intExtra = intent.getIntExtra("android-support-
navigation:ActivityNavigator:current", 0)) == 0)) {
intent2.putExtra("android-support-
navigation:ActivityNavigator:source", intExtra);
}
intent2.putExtra("android-support-
navigation:ActivityNavigator:current", aVar.f2401c);
Resources resources = this.f2344a.getResources();
if (rVar != null) {
int i = rVar.f2427f;
int i2 = rVar.f2428g;
if ((i <= 0 ||
!resources.getResourceTypeName(i).equals("animator")) && (i2 <= 0 ||

36
!resources.getResourceTypeName(i2).equals("animator"))) {
intent2.putExtra("android-support-
navigation:ActivityNavigator:popEnterAnim", i);
intent2.putExtra("android-support-
navigation:ActivityNavigator:popExitAnim", i2);
} else {
StringBuilder d = C0002c.m21d("Activity destinations do
not support Animator resource. Ignoring popEnter resource ");
d.append(resources.getResourceName(i));
d.append(" and popExit resource ");
d.append(resources.getResourceName(i2));
d.append("when launching ");
d.append(aVar);
Log.w("ActivityNavigator", d.toString());
}
}
this.f2344a.startActivity(intent2);
if (rVar == null || this.f2345b == null) {
return null;
}
int i3 = rVar.f2425d;
int i4 = rVar.f2426e;
if ((i3 > 0 &&
resources.getResourceTypeName(i3).equals("animator")) || (i4 > 0 &&
resources.getResourceTypeName(i4).equals("animator"))) {
StringBuilder d2 = C0002c.m21d("Activity destinations do
not support Animator resource. Ignoring enter resource ");
d2.append(resources.getResourceName(i3));
d2.append(" and exit resource ");
d2.append(resources.getResourceName(i4));
d2.append("when launching ");
d2.append(aVar);
Log.w("ActivityNavigator", d2.toString());
return null;
} else if (i3 < 0 && i4 < 0) {
return null;
} else {
this.f2345b.overridePendingTransition(Math.max(i3, 0),
Math.max(i4, 0));
return null;
}
} else {
throw new
IllegalStateException(C0001b.m15e(C0002c.m21d("Destination "), aVar.f2401c,
" does not have an Intent set."));
}
}

/* renamed from: e */
public final boolean mo3675e() {
Activity activity = this.f2345b;
if (activity == null) {
return false;
}
activity.finish();
return true;
}
}

37
Routing.java:
package androidx.navigation;

import com.appsflyer.internal.referrer.Payload;
import java.util.List;
import p524id.C8127b;
import p524id.C8143m;

/* renamed from: androidx.navigation.t */


public final /* synthetic */ class C0805t {
/* renamed from: a */
public static float m2009a(float f, float f2, float f3, float f4) {
return (f3 - (f * f2)) * f4;
}

/* renamed from: b */
public static String m2010b(Class cls, StringBuilder sb, String str) {
sb.append(cls.getName());
sb.append(str);
return sb.toString();
}

/* renamed from: c */
public static String m2011c(String str, String str2, String str3) {
return str + str2 + str3;
}

/* renamed from: d */
public static String m2012d(String str, String str2, String str3,
String str4) {
return str + str2 + str3 + str4;
}

/* renamed from: e */
public static String m2013e(String str, List list, String str2) {
return str + list + str2;
}

/* renamed from: f */
public static String m2014f(StringBuilder sb, boolean z, char c) {
sb.append(z);
sb.append(c);
return sb.toString();
}

/* renamed from: g */
public static StringBuilder m2015g(String str, double d, String str2) {
StringBuilder sb = new StringBuilder();
sb.append(str);
sb.append(d);
sb.append(str2);
return sb;
}

/* renamed from: h */
public static void m2016h(Class cls, int i, int i2, C8127b.C8129b bVar)
{
bVar.mo41712a(new C8143m(cls, i, i2));
}

38
/* renamed from: i */
public static /* synthetic */ String m2017i(int i) {
return i == 1 ? Payload.RESPONSE_OK : i == 2 ? "BAD_CONFIG" :
"null";
}
public static NavController m2018a(Activity activity) {
View view;
int i = C3116b.f9369c;
if (Build.VERSION.SDK_INT >= 28) {
view = (View) C3116b.C3120d.m7857a(activity, R.id.root_nav_host);
} else {
view = activity.findViewById(R.id.root_nav_host);
if (view == null) {
throw new IllegalArgumentException("ID does not reference a
View inside this Activity");
}
}
NavController c = m2020c(view);
if (c != null) {
return c;
}
throw new IllegalStateException("Activity " + activity + " does not
have a NavController set on " + R.id.root_nav_host);
}

/* renamed from: b */
public static NavController m2019b(View view) {
NavController c = m2020c(view);
if (c != null) {
return c;
}
throw new IllegalStateException("View " + view + " does not have a
NavController set");
}
public static final HashMap<Class<?>, String> f2452b = new
HashMap<>();

/* renamed from: a */
public final HashMap<String, C0807v<? extends C0778l>> f2453a = new
HashMap<>();

/* renamed from: b */
public static String m2027b(Class<? extends C0807v> cls) {
HashMap<Class<?>, String> hashMap = f2452b;
String str = hashMap.get(cls);
if (str == null) {
C0807v.C0808a aVar = (C0807v.C0808a)
cls.getAnnotation(C0807v.C0808a.class);
str = aVar != null ? aVar.value() : null;
if (m2028d(str)) {
hashMap.put(cls, str);
} else {
StringBuilder d = C0002c.m21d("No @Navigator.Name annotation
found for ");
d.append(cls.getSimpleName());
throw new IllegalArgumentException(d.toString());
}
}
return str;
}

39
6.2 Snapshots

Fig: Starting page Fig: Sign up option page Fig: Number to sign-up page

Fig: Email to login Fig: Login with password Fig: Name for account

40
Fig: Main user interface Fig: Select to map options Fig: Settings

Fig: Drive History Fig: Chat Box Fig: Emergency Contact

41
Fig: Membership perches Fig: Circle creation option Fig: Invite code entry

Fig: Your invite code Fig: Circle joining page Fig: Member Information

42
Chapter 7
Conclusion and Future Scope

43
7.1 Conclusion

Lost android mobile phone tracker is a unique & efficient application, which is used to track
the Lost! Misplaced android phone.
All the features work on SMS basis. Therefore, incoming SMS format plays a vital role. Our
android application running in the cell monitors all the incoming messages. If the SMS is meant
for the application, it reads the same and performs the expected task.
We have created features, which will enhance the existing cell tracking system. Application
stands different from the existing system as it’s not only the GPS value it makes use of but
works on GSM/ text messaging services which makes application a simple & unique one.

7.2 Future Enhancement

1. Get notification of a SIM card change.


2. SMS/Call Filtering.
3. Allowing user to specify his own attention words (Database Connectivity).
4. Lock device, wipe memory to keep your private data safe.

Control your Android remotely via a web-based interface through Android Locator.

44
Chapter 8
References

45
[1] Hello Android, the Pragmatic Programmers (2009),\E. Burnette ba Professional
Android 2 Application Development, R. Meier, Wiley (2010). 3. Beginning Android 2,M.
Murphy, Apress (2010).

[2]” Alert notification as a service”MarjanGusev ;SaskoRistov ; GoranVelkoski ;


PanoGushev.https://ieeexplore.ieee.org/document/6859584.

[3] Android Developer Guide: http.//developer.android.com/guide/index html

[4] Android APL http://developer.andr oid .com/reference/packages. html

[5]”JustIoT Internet of Things based on the Firebase real-time database” Wu-Jeng Li ;


Chiaming Yen ; You-Sheng Lin ; Shu-Chu Tung ; ShihMiao Huang
https://ieeexplore.ieee.org/document/8353979

[6] V-Model:http./en.wikibooks.org/wiki/Introduction to Software Engineering/Process/¥-


Model

[7]” Implementation application internal chat messenger using android system”RobiSanjaya ;


Abba SugandaGirsang. https://ieeexplore.ieee.org/document/8167092

[8] XianhuaShu, “Research on Mobile Location Service Design Based on Android”, Wireless
Communications, Networking and Mobile Computing,
2009. WiCom '09. 5th International Conference, 24-26 Sept. 2009

[9] Varandas, L.C.M., “Tracker: A Mobile Tracking Application for Pervasive Environment”,
Advanced Information Networking and Applications
Workshops (WAINA), 2010 IEEE 24th International Conference, 20-23 April 2010

[10] Al-Suwaidi, G.B., “Locating friends and family using mobile phones with global
positioning system (GPS)”, Computer Systems and Applications,
2009. AICCSA 2009. IEEE/ACS International Conference, 10-13 May 2009

46
[11] Yuan-Cheng Lai, “A GPS navigation system with QR code decoding and friend
positioning in smart phones”, Education Technology and
Computer (ICETC), 2010 2nd International Conference, 22-24 June 2010
[12] https://en.wikipedia.org/wiki/Android_Studio
[13] https://developer.samsung.com/galaxy/others/android-studio-overview
[14] http://developer.android.com/sdk/installing/studio.html
[15] http://xda-university.com/as-a-developer/getting-started-android-studio
[16] http://www.theverge.com/2013/5/15/4333534/google-android-studio
[17] http://www.donnfelker.com/wp-content/uploads/AndroidDeveloperTools-Chapter6.pdf

47

You might also like