Professional Documents
Culture Documents
VIBRATION
A PROJECT REPORT
Submitted by
ARIVUKKADAL.E (720714205002)
DHAREN KUMAR S.J (720714205011)
GOWTHAM BISWAS (720714205020)
BACHELOR OF TECHNOLOGY
IN
INFORMATION TECHNOLOGY
HINDUSTHAN COLLEGE OF ENGINEERING AND TECHNOLOGY
COIMBATORE-641 032
APRIL 2018
ANNA UNIVERSITY::CHENNAI 600 025
BONAFIDE CERTIFICATE
SIGNATURE SIGNATURE
Dr.S.SARAVANASUNDHARAM Mrs.M.INDIRANI M.E.,
M.Tech., Ph.D., SUPERVISOR
HEAD OF THE DEPARTMENT ASSISTANT PROFESSOR
Information Technology Information technology
Hindusthan College of Engineering Hindusthan College of Engineering
and Technology, Coimbatore-32 and Technology, Coimbatore-32
MOHAMED SUFIK.S
I certify that the declaration made by the above candidates are true.
Project Guide,
Mrs.M.INDIRANI, M.E.,
Assistant professor,
Department of IT,
Hindusthan College of Engineering
and Technology, Coimbatore –32
ACKNOWLEDGEMENT
We take this opportunity to express our whole hearted thanks and our
profound respect to all those who guided and inspired us in the completion of this
project work.
We would like to express our gratitude to the Head of the Department Dr.
S.SARAVANASUNDHARAM, M.Tech., Ph.D., for bringing out the project
successfully and for strengthening the ray of hope.
We would like to express our sincere thanks and deep sense of gratitude to
our Guide Mrs.M.INDIRANI,M.E., Assistant professor Information Technology,
for her valuable guidance, suggestions and constant encouragement which paved
way for the successful completion of the project work.
We express our immense pleasure and thankfulness to our Class Advisor and
Project Coordinator, Mrs.M.INDIRANI, M.E., Head Of The Department, and all
other Faculty members of the Department of Information Technology, technical
staffs and friends delivered us for the successful completion of this project. We
express our earnest gratitude to our family members who encouraged us and
strengthened us in perilous path, encountered during our task.
ABSTRACT
INTRODUCTION
1.1 OBJECTIVE
LITERATURE SURVEY
(i) Force feedback is the area of haptics that deals with devices that interact
with the muscles and tendons that give the human a sensation of a force
being applied with hardware and software that stimulates humans sense of
touch and feel through tactile vibrations or force feedback.
(ii) These devices mainly consist of robotic manipulators that push back against
a user with the forces that corresponding to the environment that the virtual
effector’s is in.
(iii) Tactile feedback makes use of devices that interact with the nerve endings
in the skin to indicate heat,pressure and texture.these devices typically have
been used to indicate whether or not the user is in contact with a virtual
object.other tactile feedback devices have been used to stimulate the texture
of a virtual object.
HUMAN SENSE
Typically it is believed thet vision and audition convey the most information
about an environment while the other senses are more subtle.because of this,their
characteristics have been widely investigated over the last few decades by
scientists and engineers,which has led to development of reliable multimedia
systems and environments.
TOUCH
Indeed,the sense of touch is distributed over the entire body,unlike the other
conventional four senses,which are centralized around specific parts of the
body.the sense of touch is mainly associated with active tactile senses such as our
hands.to appreciate the sense of touc more fully,consider the following facts
according to heller and schiff,touch is twenty times faster than vision,so humans
are able to differentiate between two stimuli just 5ms apart,bolanowski et al.found
that touch is highly sensitive to vibration up to 1KHZ,with the peak sensitive to
vibration around 250Hz and skin receptors on the human palm can sense
displacements as low0.2m in length.
CHAPTER 3
SYSTEM ANALYSIS
3.1 EXISTING SYSTEM
One Time Password is available to prevent this attacks that sends
OTP to register E-Mail.
Black and white attack
357 341
426 528
189 769
Same as by keeping a picture instead of numbers is called Black & White Attack.
Easy to access
Not secure
Random method
2,4,6,8,…
3.2.1 ADVANTAGES
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
3.3.1 ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will have on
the organization. The amount of fund that the company can pour into the research
and development of the system is limited. The expenditures must be justified. Thus
the developed system as well within the budget and this was achieved because
most of the technologies used are freely available. Only the customized products
had to be purchased.
SYSTEM ARCHITECTURE
Memory : 4GB
RAM : 512MB
SOFTWARE DESCRIPTION
6.1 FRONT END
6.1.2 HISTORY
Large Eclipse based products can organize their features into trees starting from the
root feature that represents the entire product.This root feature then includes smaller
units of functionality all the way down to leaf features that list one or more plug-ins
and fragments. The capability to group features hierarchically allows products to be
stacked using a 'Russian doll' approach - a large product can build on top of a smaller
one by including it and adding more features.
6.1.4 HARDWARE:
ECLIPSE is designed from the ground floor up to take advantage of the technology
available in the latest hardware and Windows operating systems. Although ECLIPSE
will run on any computer that has a functional Windows 7, Windows 8, or 2008
Server operatingsystem with all Microsoft Service Packs and updates installed, the
performance of specific features within ECLIPSE may besubstantially reduced with
less than adequate computer hardware. In general, the most efficient and cost-
effective system will resultwith the implementation of medium to high-end servers
and workstations. Ultimately, patient flow, work habits and office volume will dictate
the specific hardware and operating system needs.
Eclipse Europa is the annual release of Eclipse projects in 2007. Like last year
Callisto release, the Europa release is a coordinated release of different Eclipse
project teams. This year, the annual release includes . By releasing these projects at
the same time, the goal is to eliminate uncertainty about version compatibility and
make it easier to incorporate multiple projects into your environment.
6.1.6 ECLIPSE INDIGO:
Eclipse is the annual release of eclipse project on june 22 2011, 62 teams are part of
the release. The Eclipse Foundation has released Eclipse 3.7 (Indigo). Actually,
Indigo is a simultaneous release of dozens of projects including the Eclipse Platform,
Java development tools, source control tools, GUI designers, and more. This is the
eighth successive year in which the Eclipse community has shipped a coordinated
release on schedule.
Eclipse Galileo is the annual releaseof Eclipse projects in 2009; this year it includes
33 projects. Eclipse Galileo SR2 Packages. These packages were releasedon
01/14/2015.
Eclipse Ganymede is the annual release of Eclipse projects in 2008; this year
including 23 projects. Some highlights of the release include the new p2 provisioning
platform, new Equinox security features, new Ecore modeling tools, support for SOA
and much more. Use the links below to download and discover more about the
projects in the Ganymede release.
The Eclipse Simultaneous Release is the end result of a process that sees the
coordination of scheduling and communication across Eclipse Open Source Project
teams. This year's Eclipse Oxygen is the 12th official simultaneous release; it includes
the hard work from of 83 open source projects, comprising approximately two million
net new lines of code.The output of this process is a composite repository of open
source software, and a new release of the Eclipse IDE. The Eclipse Oxygen release
includes many improvements in functionality and performance, includes new tools for
Java™ code coverage analysis, and can be extended to support Java 9 development
via an early access preview.
Eclipse Luna includes official support for Java™ 8 in the Java development tools,
Plug-in Development Tools, Object Teams, Eclipse Communication Framework,
Maven integration, Xtext, Xtend, Web Tools Platform, and Memory Analyzer. The
Eclipse compiler includes language enhancements, search and refactoring, Quick
Assist and Clean Up to migrate anonymous classes to lambda expressions and back,
and new formatter options for lambdas.The workbench provides a new dark theme,
split editors, line numbers on by default, reduced whitespace in default presentation,
and ability to hide the "quick access" bar.Sirius allows architects to easily create their
own graphical modeling workbenches by leveraging the Eclipse modeling
technologies, including Eclipse Modeling Framework (EMF) and Graphical Modeling
Framework (GMF)
The Schema Design is a visual interface where tables and table structures can be
defined, displayed and manipulated. The Schema Designer provides a convenient
graphical way to perform common operations as an alternative to the menu-based way
of operation that was always supported. Also the Schema Designer provides a
graphical overview of databases.
A single large key space - not separate key spaces for each table
and index as in SQLite3.
Keys sort in lexicographical order.
Multiple storage engines, interchangeable at run-time.
Default on-disk storage engine uses a log-structured merge
database.
iv. The PRIMARY KEY of a table really is used as the key to the storage engine.
v. Decimal arithmetic is used.
vi. Foreign key constraints and recursive triggers are on by default.
vii. Covering indices can be declared explicitly.
CHAPTER 7
MODULE DESCRIPTION
The project is about the PIN security scheme using Haptic Feedback. The
objective of this application is to find whether the existing app locks are secured are
not. This is done byrandom vibration using Sqlite. This is used to count the registered
PIN with the vibration.These are the modules of PIN security scheme using Haptic
feedback.
Registration Module-1
Registration Module-2
Random Vibration Technique
Forget Password
Image Capture Message
The user need to register the required details to know that the required person use
the mobile Username, mail-id and the recovery phone number is set first and stored in
the Database after the completion of first page, The second page with further details
get displayed by clicking next.
An OTP is sent to the registered number after submitting the first page. Enter the
OTP, if you enter any number randomly you will get a error message that your OTP is
wrong. You are able to enter the password the limit of the password is restricted only
to 4digit, the security question can be entered by the user and the security answer is
also set by the user all the details are stored in the Database by clicking next.
From the registration module-2 we have saved a password Forthe password for
each pin we get vibration between (1-5)times. Enter the pin after the vibration stops
then the vibration starts for the second pin this step repeats for each registered pin.
After the pin is entered. Press entered. If the password and the vibration matches if the
pin that we have entered is right then we go to the next module the app which is
secured will display.
If the password is wrong we will get the forgot password the security question
which we have registered is displayed in forgot password enter the correct answer for
that question the password that we have saved is sent to the registered number.
In this module, if anyone sees our generated one time password and then they try to
retype and unlock any app, then their image will be captured and sent to registered mobile
number. So misusing of our mobile by others can be easily identified.
CHAPTER 8
SYSTEM DESIGN
8.1 DATA FLOW DIAGRAM
USER DB LEVEL
Fig.8.1.1user db level
A Use case is a list of steps, typically defining interactions between a role and a
system, to achieve a goal. Actors must be able to make decisions, but need not be
human. An actor might be a person, a company or organization, a computer program,
or computer system hardware, software or both. The Elliptical shape in the use case
diagram represents the step by step activities involved in the project. This helps us to
get the overall flow of the project. The arrow line represents the links between the
actor and activity that is happening within the system. By the actors, activity, and
links one can get the overall structure of the application.
DESIGN PROCESS
9.1 INPUT DESIGN
Input design is the process of converting the user-oriented Input to a computer based
format. The goal of the input design is to make the data entry easier, logical and free
error. Errors in the input data are controlled by the input design. The quality of the
input determines the quality of the system output.
The entire data entry process is interactive in nature, so that the user can directly enter
into data according to the prompted messages. The users also can directly enter into
data according to the prompted messages. The users are also provided with option of
selecting an appropriate input from a list of values. This will reduce the number of
error, which are otherwise likely to arise if they were to be entered by the user itself.
Input design is one of the most important phase of the system design. Input design is
the process where the input received in the system are planned and designed, so as to
get necessary information from the user, eliminating the information that is not
required. The aim of the input design is to ensure the maximum possible levels of
accuracy and also ensures that the input is accessible that understood by the user. The
input design is the part of overall system design, which requires very careful attention.
If the data going into the system is incorrect then the processing and output will
magnify the errors.
The output form of the system is either by screen. Output design aims at generating
the results of the processing of the users. The reports are generated to suit the needs of
the users. The reports have to be generated with appropriate levels.. As its web
application output is designed in a very user-friendly this will be through screen most
of the time.
The main purpose of code design is to simplify the coding and to achieve better
performance and quality with free of errors. The coding is prepared in such a way that
the internal procedures are more meaningful validation manager is displayed for each
column.
The coding of the variables is done in such a way that one other than person who
developed the packages can understand its purpose. To reduce the server load, the
project is designed in a way that most of the Validation of fields is done as client side
validation, which will be more effective.
Database design is the process of producing a detailed data model of a database. This
logical data model contains all the needed logical and physical design choices and
physical storage parameters needed to generate a design in a Data Definition
Language, which can then be used to create a database. A fully attributed data model
contains detailed attributes for each entity. The term database design can be used to
describe many different parts of the design of an overall database system. Principally,
and most correctly, it can be thought of as the logical design of the base data
structures used to store the data.
In the relational model these are the tables and views. In an object database the
entities and relationships map directly to object classes and named relationships.
However, the term database design could also be used to apply to the overall process
of designing, not just the base data structures, but also the forms and queries used as
part of the overall database application within the database management system
(DBMS). The process of doing database design generally consists of a number of
steps which will be carried out by the database designer. The Database Design
includes:
i. Determine the purpose of the database - This helps prepare for the remaining
steps.
ii. Find and organize the information required - Gather all of the types of
information to record in the database, such as product name and order number.
iii. Divide the information into tables - Divide information items into major entities
or subjects, such as Products or Orders. Each subject then becomes a table.
iv. Turn information items into columns - Decide what information needs to stored
in each table. Each item becomes a field, and is displayed as a column in the table.
For example, an Employees table might include fields such as Last Name and Hire
Date.
v. Specify primary keys - Choose each table’s primary key. The primary key is a
column that is used to uniquely identify each row. An example might be Product
ID or Order ID.
9.4.1 REGISTRATION TABLE-1
It is user to store the required details that is mentioned in the module
Table7.1 for registration modeule-1
SYSTEM TESTING
10.1 Introduction
During the testing process the software is worked with some particular test case
and the output of the test cases are analyzed whether the software us working
according to the expectations or not.
The success of the testing process in determining the error is mostly depends upon
the test case criteria, for testing any software we need to have a description of the
expected behaviour of the system and method of determining whether the observed
behaviour confirmed to the expected behaviour.
Not every testing is done after the completion of the project code; some of them are
done throughout the development process while some of them are done before the
commencement of the project.
Requirement testing is one of the kind where testing is done before the
commencement of the project. Before commencing the project, requirements listed
out by the client are checked for its feasibility.
All the functions in the project are tested as indicated in the Table: 8.3 against the
requirements to ensure that the product conforms to what was specified. Then the
functionality of each process is checked by testing with both valid and invalid data;
and checking the proper error handling.
A unit is the smallest testable part of an application. The goal of the unit testing is
to isolate each part of the program and show that the individual parts are correct.
Once a method, function or class is created it is checked for erroneous data. If it is
found, it can be re-factored. Each and every unit as indicated in the Table: 10.3.1 is
checked for errors at the time of creation and all the test cases are passed.
11.1 CONCLUSION
The project PIN security scheme using Haptic feedback is very simple in design and
to implement. The mobile requires very low resources and works in almost all
configurations and its interface is very user-friendly. It include registration of the user,
then the random vibrations are counted which is added with already existing PIN and
new password is generated every time. The generated new password is been typed to
unlock an app.
Same Mobile application can be developed for others Mobile operating systems such
as Windows, iOS etc.
Existing software is developed for Mobile phones of Android operating system with
lollipop version and below. Same app can be developed for higher android version.
In our current project, we have added security only for the calculator application. In
future, the user could able to select any applications available in his mobile phone, so
the selected applications can be secured.
APPENDICES-A
Registration module: 1
package com.example.hapticpin;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
EditText UserName,PhoneNo,E_EmailId;
Button SaveButton;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.openinglayout);
createOrderTab.getWritableDatabase();
DataBaseManager.initializeInstance(createOrderTab);
findViewById(R.id.toast_layout_root));
t.setDuration(Toast.LENGTH_LONG);
t.setView(layout);
t.setGravity(Gravity.CENTER|Gravity.CENTER_VERTICAL, 0, 0);
t.show();
SaveButton.setOnClickListener(new OnClickListener() {
@Override
int temp=0;
String otpdata="";
otpdata=otpdata+temp;
Log.i("temp", otpdata);
if(emailValidator(E_EmailId.getText().toString()))
if(isIs_mob_number(PhoneNo.getText().toString())){
try {
smsManager.sendTextMessage(PhoneNo.getText().toString(), null,
otpdata, null,null);
} catch (Exception e) {
e.printStackTrace();
Log.i("Otp",otpdata);
Regester.class);
intent.putExtra("Otp", otpdata);
intent.putExtra("PhoneNumber", PhoneNo.getText().toString());
intent.putExtra("UserName", UserName.getText().toString());
intent.putExtra("E_EmailId", E_EmailId.getText().toString());
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}else {
Log.i("temp", "Success");
}else {
Toast.makeText(getApplicationContext(),"Email Id is not
valid",Toast.LENGTH_SHORT).show();
}}});}
Pattern pattern;
Matcher matcher;
final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-
9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
pattern = Pattern.compile(EMAIL_PATTERN);
matcher = pattern.matcher(email);
return matcher.matches();
boolean is_mob_number=false;
if (matchr.matches()) {
is_mob_number = true;
else
is_mob_number = false;
return is_mob_number;
}
int x = rand.nextInt(6);
if (x == 0) {
x = 1;
return x;
REGISTRATION MODULE 2:
package com.example.hapticpin;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
EditText otp,E_PhoneNumber,E_Password,Answer,Question;
Button SaveButton;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.regeister);
createOrderTab.getWritableDatabase();
DataBaseManager.initializeInstance(createOrderTab);
SaveButton.setOnClickListener(new OnClickListener() {
@Override
Log.i("size",Otp);
if(checkDataValid(otp.getText().toString()))
if(Otp.endsWith(otp.getText().toString()))
if(checkDataValid(E_Password.getText().toString())
&&checkDataValid(Question.getText().toString())
&&checkDataValid(Answer.getText().toString()))
{
if(E_Password.getText().toString().trim().length()==4)
PasswordModel.setEmailId(E_EmailId);
PasswordModel.setNumber(PhoneNumber);
PasswordModel.setNewPassword(E_Password.getText().toString());
PasswordModel.setSecretQa(Question.getText().toString());
PasswordModel.setSecretAns(Answer.getText().toString());
PasswordModel.setOldPassword("");
PasswordDal.insertDetailsIntoLocalDB(PasswordModel);
else
else
{
try {
Log.i("size","size"+PasswordDal.getNewsInformation().get(0).getOldPassword());
} catch (Exception e) {
e.printStackTrace();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
else
Toast.makeText(getApplicationContext(),"Otp is
Wrong",Toast.LENGTH_SHORT).show();
}}
else
Toast.makeText(getApplicationContext(),"Enter the
OTP",Toast.LENGTH_SHORT).show();
}}});}
if(Data.trim().length()>0)
return true;
else
return false;
}}}
FORGOT PASSWORD
package com.example.hapticpin;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
EditText otp,E_PhoneNumber,E_Password,Answer,Question;
Button SaveButton;
TextView question;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.forgotpassword);
LocalDBHelper createOrderTab = new LocalDBHelper(this);
createOrderTab.getWritableDatabase();
DataBaseManager.initializeInstance(createOrderTab);
try {
question.setText(PasswordDal.getNewsInformation().get(0).getSecretQa());
Log.i("gggg",PasswordDal.getNewsInformation().get(0).getSecretQa());
e1.printStackTrace();
SaveButton.setOnClickListener(new OnClickListener() {
@Override
try {
if(PasswordDal.getNewsInformation().get(0).getSecretAns().endsWith(Answer.getText().
toString()))
try {
smsManager.sendTextMessage(PasswordDal.getNewsInformation().get(0)
.getNumber(), null,PasswordDal
.getNewsInformation().get(0).getNewPassword(), null,null);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}}
else
Toast.makeText(getApplicationContext(),"Wrong
Answer",Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}}});}}
RANDOM VIBRATION:
package com.example.hapticpin;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
EditText edt1 ;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
(ViewGroup) findViewById(R.id.toast_layout_root));
t.setDuration(Toast.LENGTH_LONG);
t.setView(layout);
t.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL, 0, 0);
t.show()
button1.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"1");
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"2");
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"3");
}
});
button4.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"4");
});
button5.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"5");
});
button6.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"6");
}
});
button7.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"7");
});
button8.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"8");
});
button9.setOnClickListener(new View.OnClickListener() {
@Override
});
button0.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+"0");
});
buttonAdd.setOnClickListener(new View.OnClickListener() {
@Override
if (edt1 == null){
edt1.setText("");
}else {
mAddition = true;
edt1.setText(null);
});
buttonSub.setOnClickListener(new View.OnClickListener() {
@Override
mSubtract = true ;
edt1.setText(null);
});
buttonMul.setOnClickListener(new View.OnClickListener() {
@Override
mMultiplication = true ;
edt1.setText(null);
}
});
buttonDivision.setOnClickListener(new View.OnClickListener() {
@Override
mValueOne = Float.parseFloat(edt1.getText()+"");
mDivision = true ;
edt1.setText(null);
});
buttonEqual.setOnClickListener(new View.OnClickListener() {
@Override
if (mAddition == true){
mAddition=false;
}
if (mSubtract == true){
edt1.setText(mValueOne - mValueTwo+"");
mSubtract=false;
if (mMultiplication == true){
edt1.setText(mValueOne * mValueTwo+"");
mMultiplication=false;
if (mDivision == true){
edt1.setText(mValueOne / mValueTwo+"");
mDivision=false;
});
buttonC.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edt1.setText("");
});
button10.setOnClickListener(new View.OnClickListener() {
@Override
edt1.setText(edt1.getText()+".");
}}}
APPENDIX-B
SCREEN SHOT
REGISTRATION MODULE-1
OTP GENERATION:
REGISTRATION MODULE-2
RANDOM VIBRATION TECHIQUE
CALCULATOR APP
FORGET PASSWORD
SECURITY QUESTION:
IMAGE CAPTURE MESSAGE: