You are on page 1of 52

ANDROID-BASED MOBILE PAYMENT SERVICE PROTECTED BY 3FACTOR AUTHENTICATION AND VIRTUAL PRIVATE AD HOC

NETWORKING
ABSTRACT
This work develops a pair of mobile payment devices, a counter reader and a paying
client, on Android-based smartphone platforms for emerging mobile payment or electronic wallet
services. These two devices featuring 3-factor authentication and virtual private Ad Hoc
networking can make an easier and securer transaction than traditional credit cards or electronic
payment cards. 3-factor authentication feature combines PIN code authentication, USIM card
authentication, and facial face authentication. Especially, this work proposes and implements a
simple but practical method, Fast Semi-3D Face Vertical Pose Recovery, to cope with the vertical
pose variation issue bothering face recognition systems so far. Experimental results show the
proposed method can significantly raise the recognition accuracy and enlarge the operating angle
range of face recognition system under various vertical pose conditions. Besides, virtual private
Ad Hoc networking feature based on OpenSSL and i-Jetty open-source libraries is also integrated
seamlessly.

EXISTING SYSTEM
 Since the cellphone embedded with a Universal Subscriber Identity Module (USIM) card has
become the most widespread device that human beings have ever created and brought along,
global telecom operators are unexceptionally engaged in mobile payment service to share the
ever-increasing electronic payment card market.
 Besides, mobile payment technology not only can be applied to micropayment transactions as a
coin wallet, but also can be extensively applied to public transportation’s electronic ticketing,
vending machines, membership cards, smart poster interaction, house electronic keys, car smart
keys, official digital signatures, and so on.
 However, it will be possibly prevalent only if the mobile payment service can be used more
rapidly, conveniently, and securely than cash or credit card transactions.

DISADVANTAGES OF THE EXISTING SYSTEM

The existing system has insecure or less secured transaction occurs from the

client.

The security issue of Ad Hoc networking between the mobile payment counter

reader and the mobile payment paying client is also critical

PROPOSED SYSTEM

 In order to protect the transaction itself with the lowest risk, 3-factor authentication feature is
effective and necessary. 3-factor authentication involves three different kinds of identification
procedures:

what the paying client knows (e.g., secret phrase, password, PIN code),

what the paying client has (e.g., token, electronic card, passport), and

what the paying client characterizes (e.g. behavioral or biometric feature).

 Only mobile payment service based on the Android-based smartphone platforms can
accomplishes all requirements of 3-factor authentication easily and completely, but traditional
credit cards or electronic payment cards can not.
 Because the more factors the authentication chooses, the more robust the defense strength of the
transaction itself gets, 3-factor authentication feature has become the fundamental and common
authentication standard adopted by global mobile telecom operators for promotion of mobile
payment service.

ADVANTAGES OF THE PROPOSED SYSTEM

Virtual private Ad Hoc networking feature in this work is a safer and cheaper for

promotion of mobile payment service.

Low-power and high-portability Android-based smartphone platforms are adopted to

implement a pair of mobile payment devices

The mobile payment reader in this work is suitably deployed in any temporary outdoor

business activities are usually out of electric power and Wi-Fi access point.
SYSTEM REQUIRMENTS

SOFTWARE REQUIREMENTS
Development IDE

:

Eclipse

Android SDK

:

4.1

Database

:

SQL Lite

Hard disk

:

50GB

Processor

:

Dual Core Processor

Monitor

:

17’’Color Monitor

HARDWARE REQUIREMENTS

ALGORITHM USED

ENCRYPTION ALGORITHM

Encryption is the process of converting a plaintext message into cipher text which can be
decoded back into the original message. An encryption algorithm along with a key is used in the
encryption and decryption of data. There are several types of data encryptions which form the
basis of network security. Encryption schemes are based on block or stream ciphers.
The type and length of the keys utilized depend upon the encryption algorithm and the
amount of security needed. In conventional symmetric encryption a single key is used. With this
key, the sender can encrypt a message and a recipient can decrypt the message but the security of
the key becomes problematic. In asymmetric encryption, the encryption key and the decryption
key are different. One is a public key by which the sender can encrypt the message and the other
is a private key by which a recipient can decrypt the message.

PREPROCESSING ALGORITHM
Preprocessing images commonly involves removing low-frequency background noise,

normalizing the intensity of the individual particles images, removing reflections, and masking
portions of images. Image preprocessing is the technique of enhancing data images prior to
computational processing.

MODULES: Adhoc Network: This work develops and ports Secure Sockets Layer (SSL) protocol to put some encryption algorithm on the Ad Hoc wireless channel as a Virtual Private Network (VPN). DFD: Screen Shots: .

This client information is stored in confidential database. password.PIN Authentication: Input of this authentication is what the paying client knows. Screen Shots: . It is using to get information (Mobile Number and Face input) of every client. Like secret phrase. PIN code and etc… In this project we are using UserName and Password.

USIM Authentication: .

Input of this Authentication is what the paying client has. passport and Mobile Number. electronic card. DFD: Screen Shots: . Like token.

Like Finger Print. Face and IRIS.Face Authentication: The Final Authentication of this project is what the paying client characterizes. .

DFD: Screen Shots: .

.

SYSTEM REQUIRMENTS SOFTWARE REQUIREMENTS Development IDE : Eclipse Android SDK : 4.1 Database : SQL Lite Hard disk : 50GB Processor : Dual Core Processor Monitor : 17’’Color Monitor HARDWARE REQUIREMENTS .

LITERATURE SURVEY Title: Fast face identification under varying pose from a single 2-D model view Authors: Gao. S. Leung.H. Wang... the face identification system with the proposed pose recovery method demands much less storage space as it transforms the 2-D rotated face to the 2D fronto-parallel view for subsequent identification rather than generating multiple virtual views for a single input face.. It addresses the computationally expensive problem of current generic 3-D model pose recovery methods and thus is able to be used in real-time applications. M. The authors present a simple and computationally efficient 3-D pose recovery methodology. Hui. Experiments evaluating the effectiveness of the technique are reported.K. The systems are compared with human performances and existing techniques . W.C. Y. Compared with the virtual view methods. Description: One of the key remaining problems in face recognition is that of handling the variability in appearance due to changes in pose.

To model the pose-invariance. The main idea is to normalize the face view in depth to frontal view as the input of face recognition framework.75% under the pose that rotated within 30 degree.Title: Pose normalization for robust face recognition based on statistical affine transformation Authors: Xiujuan Chai. Shiguang Shan . . the face region is divided into three rectangles with different mapping parameters in this pose alignment algorithm. the views after the pose alignment are incorporated into the frontal face recognition system. Concretely. Wen Gao Description: A framework for pose-invariant face recognition using the pose alignment method is described in this paper. So the affine transformation parameters associated with the different poses can be used to align the input pose image to frontal view. To evaluate this algorithm objectively. an inputted face image is first normalized using the irises information. Experimental results show that it has the better performance and it increases the recognition rate statistically by 17. and then the pose subspace algorithm is employed to perform the pose estimation.

and expression recognition. person identification. and facial expression. The model represents both shape and gray-level appearance.J..A. facial expression. gender recognition.F.Title: Automatic interpretation and coding of face images using flexible models Authors: Lanitis. Cootes. C. Description: Face images are difficult to interpret because they are highly variable. 3D pose recovery. A robust multiresolution search algorithm is used to fit the model to faces in new images. T. and is created by performing a statistical analysis over a training set of face images. lighting. We describe a compact parametrized model of facial appearance which takes into account all these sources of variability. This representation can be used for tasks such as image coding. . Taylor. 3D pose. Sources of variability include individual appearance. A good approximation to a given face can be reconstructed using less than 100 of these parameters. and gray-level appearance parameters to be recovered. and a set of shape.. Experimental results are presented for a database of 690 face images obtained under widely varying conditions of 3D pose. and lighting. This allows the main facial features to be located. The system performs well on all the tasks listed above.

User Pin and face image Mobile Device .SYSTEM ARCHITECTURE Databas e Billing Device Mobile No.

DATA FLOW DIAGRAM START Pair Client mobile and Billing Device through WIFI Login Authentication Using Username and Password and FACE image Match User Mobile Number and PIN and face image verification Bill Payed End .

UML DIAGRAMS: CLASS DIAGRAM CLIENT MOBILE CONNECTION ESTABLISHMENT() LOGIN ATTEMP() PAY BILL() PAYING DEVICE CONNECTION ESTABLISHMENT() PIN CODE() USIM AUTHENTICATION() IFACE IMAGE AUTHENTICATION() DATABASE 3 FACTOR VERIFICATION() TRANSACTION SAVED() .

USECASE DIAGRAM .

PARING DEVICES USING WIFI LOGIN ATTEMPT BILLING DEVICE USERNAME AND PASSWORD CLIENT MOBILE USIM AUTHENTICATION FACE IMAGE AUTHENTICATION DATABASAE 3-FACTOR VERIFICATION BILL PAYED SEQUENCE DIAGRAM .

BILLING DEVICE CLIENT MOBILE DATABASE CONNECTING USING WIFI CONNECTION MADE LOGIN ATTEMPT PIN CODE USERNAME AND PASSWORD USERNAME AND PASSWORD VERIFCATION USIM CARD AUTHENTICATION USIM CARD NUMBER USIM NUMBER VERIFICATION IMAGE AUTHENTICATION FACE IMAGE FACE IMAGE VERIFICATION 3-FACTOR AUTHENTICATION VERIFIED PAY BILL BILL DETAILS COLLABRATION DIAGRAM TRANSACTION SAVED .

CLIENT MOBILE 1: CONNECTING USING WIFI 3: LOGIN ATTEMPT 5: USERNAME AND PASSWORD 9: USIM CARD NUMBER 13: FACE IMAGE 17: PAY BILL 2: CONNECTION MADE 4: PIN CODE 8: USIM CARD AUTHENTICATION 12: IMAGE AUTHENTICATION 7: VERIFCATION 11: VERIFICATION 15: VERIFICATION 19: TRANSACTION SAVED 6: USERNAME AND PASSWORD 10: USIM NUMBER 14: FACE IMAGE 18: BILL DETAILS BILLING DEVICE 16: 3-FACTOR AUTHENTICATION VERIFIED ACTIVITY DIAGRAM DATABASE .

CLIENT MOBILE PAYING DEVICE CONNECTION USING WIFI LOGIN ATTEMPT PIN CODE AUTHENTICATION USIM AUTHENTICATION FACE IMAGE AUTHENTICATION 3 FACTOR VERIFICATION BILL PAYMENT SOFTWARE SPECIFICATION .

Android is a software bunch comprising not only operating system but also middleware and key applications. . Web browser etc . And with the new technologies. Now they are not used just for making calls but they have innumerable uses and can be used as a Camera . As the number of users is increasing day by day. Especially for smart phones. .S. Android Inc was founded in Palo Alto of California. After original release there have been number of updates in the original version of Android. facilities are also increasing. Starting from black and white phones to recent smart phones or mini computers. T. Later Android Inc. Mobile OS has greatly evolved from Palm OS in 1996 to Windows pocket PC in 2000 then to Blackberry OS and Android.ANDROID World is contracting with the growth of mobile phone technology. mobiles have changed our lives and have become part of it. What is Android Operating Systems have developed a lot in last 15 years. Nick sears and Chris White in 2003. was acquired by Google in 2005. One of the most widely used mobile OS these days is ANDROID. Tablet PC. U. Rich miner. by Andy Rubin.V. Music player. new software and operating systems are required. mobile OS has come far away. Starting with simple regular handsets which were used just for making phone calls.

Some of the current features and specifications of android are: .FEATURES & SPECIFICATIONS Android is a powerful Operating System supporting a large number of applications in Smart Phones. Hardwares that support Android are mainly based on ARM architecture platform. These applications make life more comfortable and advanced for the users.

and driver model. memory management. Android provides Android SDK (Software development kit). There are around 200000 applications developed for android with over 3 billion+ downloads. application and widgets available on the market for users.0 lack+ games.6 for core system services such as security. It was developed by Google. and download applications developed by third party developers and use them. It allows Android users to select. APPLICATIONS These are the basics of Android applications: . Android applications are written in java programming language. Android is available as open source for developers to develop applications which can be further used for selling in android market. network stack. Android relies on Linux version 2. There are around 2. Read more about open source software. process management. For software development.Android comes with an Android market which is an online software store.

had launched two competitions ADC1 and ADC2 for the most innovative applications for Android. Apple's iOS and Windows Phone give strong competition to Android. content providers. for software development and application development. services. A simple comparison between features and specifications of latest version of Android and other Operating Systems can be seen in the table given below. and broadcast receivers) • Each component performs a different role in the overall application behavior. etc. According to Canalys. In Q2 2009 Android had 2. advanced and interactive OTHER MOBILE OPERATING SYSTEMS There are different other Mobile operating systems also present in market in competition with Android. layout files.• Android applications are composed of one or more application components (activities.) should include alternatives for different device configurations (such as different strings for different languages) Google. strings. These competitions helped Google a lot in making Android better. . It offered prizes of USD 10 million combined in ADC1 and 2. ADC1 was launched in January 2008 and ADC 2 was launched in May 2009.8% market share which had grown to 33% market share by Q4 2010 which made Android leader of smart phone OSs worldwide. The market share for commonly used mobile OSs is shown in the following pie chart. such as the minimum version of Android required and any hardware configurations required • Non-code application resources (images. more user friendly. and each one can be activated individually (even by other applications) • The manifest file must declare all components in the application and should also declare all application requirements.

The recent version of Android (Honey comb 3. fast and convenient browsing with the Quick UI controls.1) has very advanced features and updated applications which are optimized for use on larger screen devices. It also supports . A list of companies supporting Android in their hardware is: · Acer Inc · Lenovo · ALCATEL ( TCL corporation ) · Bluelans Communications · NCE casio Mobile Communications · Cherry Mobile · HKC · Huawei · HTC corporation · LG · Samsung · I-mobile · High screen · Sony Ericsson · Videocon · ZTE · Dell · CSL · Motorola ANDROID'S LATEST Android is still updating. It also supports popular web standards like CSS 3D. These applications are mentioned below: Browser: Android's new version includes a number of new features for simple. Animations and CSS fixed positioning to all sites.A large no of mobile companies are using Android. mobile or desktop.

To make it better and convenient to manage favorite content. making them easier to see and use. . Calendar: Calendar grids are larger. users can create a larger viewing area for grids by hiding the calendar list controls. users can now save a web page locally for offline viewing. Search returns matching results from all fields that are stored for a contact. Email: When replying or forwarding an HTML message. The proxy and IP configuration is now backed up and restored across system updates and resets. the application now prefetches email from the server only when the device is connected to a Wi-Fi access point. Unread. The Email app now sends both plain text and HTML bodies as a multi-part mime message. A CLIP OF NEW BROWSER Gallery: Now the new gallery supports PTP (Picture Transfer Protocol) so that users can directly connect their cameras with Android device and transfer pictures with a single touch. Additionally.playback of HTML5 video content. port. for better readability and more accurate touchtargeting. Enterprise support: Users can now configure an HTTP proxy for each connected Wi-Fi access point. and Starred. Controls in the date picker are redesigned. To conserve battery power and minimize cell data usage. This lets administrators work with users to set a proxy hostname. Folder prefixes for IMAP accounts are now easier to define and manage. This ensures that the message will be formatted properly for all recipients. This proxy configuration is automatically used by the Browser when the Wi-Fi access point is connected. and any bypass sub domains. including all styling and images. Users can touch Email icon at the top of the widget to cycle through labels such as Inbox. Contacts: The Contacts app now lets you locate contacts more easily using full text search. and may optionally be used by other apps. both horizontally and vertically. An updated Home screen widget give users quick access to more email. The widget itself is now resizable.

text scanner etc which has made life better and simpler and Android has played an instrumental role in this evolution with thousands of applications available in Android market and open chance for developers to make it more advanced and better. The emulator lets you prototype. In a way Android has changed its users' life completely.For developers. With all these new features Android 3. Now with advanced browser.1 is making life more comfortable and advanced. gallery. together with any other active Android applications. Android’s new version has extended possibilities with new capabilities that developers can build on to create new and powerful applications for tablets and smart phones. The Android emulator mimics all of the hardware and software features of a typical mobile device. new hardwares supporting this OS are pretty convenient. ANDROID EMULATOR The Android SDK includes a virtual mobile device emulator that runs on your computer. which you can "press" using your mouse or keyboard to generate events for your application. calendar. . It also provides a screen in which your application is displayed. It provides a variety of navigation and control keys. Some of the new features for developers are: • Open Accessory API for rich interaction with peripherals • USB Host API • Input from mice. Cell phones have really evolved earlier features like camera and music player but now latest hardwares not only support such features but advanced use of such features as well as Bar code scanner. develop and test Android applications without using a physical device. Joystick and game pad • Resizable home screen widgets • MTP (Media transfer protocol) ATI for integrating with external cameras • Real Time Transport – protocol (RTP) ATI for control over audio streaming sessions. USB support. except that it cannot place actual phone calls.

such as a console from which you can log kernel output. Once your application is running on the emulator. AVDs let you define certain hardware aspects of your emulated phone and allow you to create many configurations to test many Android platforms and hardware permutations.To let you model and test your application more easily. you can use a variety of commands and options to control its behavior. notify the user. and render graphical transitions and themes. simulate application interrupts (such as arriving SMS messages or phone calls). it can use the services of the Android platform to invoke other applications. the emulator utilizes Android Virtual Device (AVD) configurations. that includes a set of preinstalled applications (such as the dialer) that you can access from your applications. play audio and video. OVERVIEW The Android emulator is an application that provides a virtual mobile device on which you can run your Android applications. . The emulator also includes a variety of debug capabilities. You can choose what version of the Android system you want to run in the emulator by configuring AVDs. When launching the emulator and at runtime. and you can also customize the mobile device skin and key mappings. store and retrieve data. down to the kernel level. It runs a full Android system stack. access the network. and simulate latency effects and dropouts on the data network.

The following sections describe the emulator and its use for development of Android applications in more detail. and so on. The emulator provides dynamic binary translation of device machine code to the OS and processor architecture of your development machine.  Sensors like an accelerometer. Each AVD functions as an independent device. you specify the AVD configuration that you want to load. the Dalvik VM. you first must create one or more AVD configurations. In each configuration. Then. When you launch the emulator with an AVD configuration. it automatically . the native libraries.The Android system images available through the Android SDK Manager contain code for the Android Linux kernel. you specify an Android platform to run in the emulator and the set of hardware options and emulator skin you want to use. when you launch the emulator. The Android emulator supports many hardware features likely to be found on mobile devices. ANDROID VIRTUAL DEVICES AND THE EMULATOR To use the emulator. with its own private storage for user data. and the various Android packages (such as the Android framework and preinstalled applications). including a simulated SIM Card  A camera. SD card. using data from a USB-connected Android device. including:  An ARMv5 CPU and the corresponding memory-management unit (MMU)  A 16-bit LCD display  One or more keyboards (a Qwerty-based keyboard and associated Dpad/Phone buttons)  A sound chip with output and input capabilities  Flash memory partitions (emulated through disk image files on the development machine)  A GSM modem. using a webcam connected to your development computer.

Packet.Intent. import android. . To create and manage AVDs you use the AVD Manager UI or the android tool that is included in the SDK.IOException.Activity. and cache in the AVD directory.ClientThread. For complete information about how to set up AVDs.MainActivity. import com. By default. import android. the emulator stores the user data.content.example. import packet. import java.paymentclient. SD card data. see Managing Virtual Devices. import android.loads the user data and SD card data from the AVD directory. import packet.Context.app.example. CODING: LOGIN ACTIVITY package com.PacType.paymentclient.content.io.

public class LoginActivity extends Activity { Context con.widget. import android.OnClickListener. break.Message.os.view.view. import android.makeText(Main.TextView.obj. } } }.Handler.View. import android. import android. import android.LENGTH_SHORT).widget.arg1) { case 0: Toast. @Override protected void onCreate(Bundle savedInstanceState) { super.os.import android. import android.Button.View. .toString().widget. Toast. private Handler handler = new Handler(){ @Override public void handleMessage(Message message){ switch (message.onCreate(savedInstanceState). message.Bundle. default: break.Toast. import android.os.show().

Pass. Context Main.id.setContentView(R. String UserName.ETUserName). TextView TxtUsername. } Button BtnSubmit. TxtUsername = (TextView) this.toString().Etpassword).findViewById (R.findViewById (R.btnLogin).layout.TxtPass. Thread cThread = new Thread(new ClientThread()).getText().BtnReg. Pass = TxtPass.getText().login).id. Intilize().id.toString().setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { UserName = TxtUsername. TxtPass = (TextView) this. } void BtnSubmit_Listenerr() { BtnSubmit. BtnSubmit = (Button)this.findViewById (R. void Intilize() { Main = this. BtnSubmit_Listenerr(). .

PinActivity. } }).valueOf(pac. } public class ClientThread implements Runnable { public void run() { Packet pac = new Packet(). pac. if(Boolean.Type = PacType.obtain(handler.0. } . pac.0.start().Login."Invalid UserName and Password")). } else { handler.cThread.Password = Pass. pac.sendMessage(Message.printStackTrace().class).printStackTrace(). try { pac = TCPClient. } catch (ClassNotFoundException e) { e.UserName=UserName. startActivity(intent).0.Result. } } catch (IOException e) { e.toString())) { Intent intent = new Intent(getApplicationContext() .Send(pac).

import android. import com. import java.OnClickListener.Intent.Activity.ClientThread.View.view.view.widget.content.Bundle.Handler.BAccNum="".PinActivity. import android. public class paymentactivity extends Activity { Button BtnPay.os. ETBranch.ETAccNumber.content.Button.} } } PAYMENT ACTIVITY package com. import android.IOException.example.paymentclient.ETAmt. Context con.Context. String Bname="".Message.View. BBranch="". EditText ETBName. import packet. import android. import android.example. import android. import packet.app.Packet.os.Toast. import android.io.os.widget.PacType. import android.widget. import android. .EditText. import android. import android.paymentclient.

id.id.ETPayAmount).id. @Override protected void onCreate(Bundle savedInstanceState) { super.findViewById(R. Init(). } void Init() { con = this.ETAccNumber). Bundle extras = getIntent(). ETAmt = (EditText)this.LENGTH_SHORT).layout.toString().makeText(con.onCreate(savedInstanceState).arg1) { case 0: Toast.ETBName). } } }.ETBBranch).id. setContentView(R.getExtras(). ETBranch = (EditText)this. ETAccNumber = (EditText)this. break. message.findViewById(R.obj.private Handler handler = new Handler(){ @Override public void handleMessage(Message message){ switch (message. .show().payment). ETBName = (EditText)this. Toast. default: break.findViewById(R.findViewById(R.

toString(). BBranch = ETBranch.id.valueOf(pac.getString("Amt")). } public class ClientThread implements Runnable { public void run() { Packet pac = new Packet(). Thread cThread = new Thread(new ClientThread()).findViewById(R.Result. } }). BAccNum = ETAccNumber.toString().setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Bname = ETBName.Password = BBranch.BTPay).getText(). try { pac = TCPClient.getText()."Paid successfull!")). BtnPay = (Button)this.getText().toString())) { handler.start(). pac. if(Boolean. pac.0.if(extras != null) ETAmt.Query = BAccNum. BtnPay.Send(pac). .setText(extras.0.Query. cThread. pac.toString().obtain(handler.0.sendMessage(Message.Type = PacType.UserName= Bname. pac.

paymentclient.BitmapFactory. import android.class).IOException.io. import android.paymentclient.content. import packet. import android.database.Activity.Bitmap.Packet.graphics. LoginActivity. . import android.net.example.graphics. } catch (ClassNotFoundException e) { e.example.app.Intent intent = new Intent(getApplicationContext() .Intent. import android.string.printStackTrace(). import com.printStackTrace(). import android.R.ClientThread.Context. import android. } } } } IMAGE AUTHENTICATION package com. import java. import packet. import android.PacType.LoginActivity.content.BitmapDrawable. } } catch (IOException e) { e.drawable.Cursor.graphics. startActivity(intent).Uri. import android.

import android. .View.View. import android.arg1) { case 0: Toast.Bundle. import android.MeasureSpec.LENGTH_SHORT).show().view. import android.widget.provider.View.Handler.os. import android.MediaStore.view. Context con.widget.ImageView. } } message.Message. break. import android. default: break.toString().widget.makeText(con. import android.OnClickListener.os. private Bitmap ImgAuth= null. Toast.view. private Handler handler = new Handler(){ @Override public void handleMessage(Message message){ switch (message.Toast.obj.Button.import android. import android. String imgurl = "". ImageView imageView = null. public class imageauth extends Activity { private static int RESULT_LOAD_IMAGE = 1.os. import android.

buttonLoadImage.onCreate(savedInstanceState). Button ButtonSend = (Button) findViewById(R. @Override protected void onCreate(Bundle savedInstanceState) { super. } . con = this. } void Init() { imageView = (ImageView) findViewById(R.provider.Media. Init().EXTERNAL_CONTE NT_URI).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Thread cThread = new Thread(new ClientThread()). } }).MediaStore.BtnImgSend).layout. Button buttonLoadImage = (Button) findViewById(R.id.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent i = new Intent(Intent.ACTION_PICK. cThread.imageView1).}.start().BtnImgGal).imageauth). RESULT_LOAD_IMAGE). setContentView(R.Images.id.id. ButtonSend. startActivityForResult(i.android.

handler. paymentactivity. startActivity(intent).}). if(Boolean. pac.Query).getPixel(11. 22)).UserName = String.valueOf(ImgAuth.Send(pac).getPixel(55. pac.putExtra("Amt". try { pac = TCPClient. } else { Intent intent = new Intent(getApplicationContext() . 33)).Get_Tables.class). pac.Type = PacType.Query).getPixel(29. intent.sendMessage(Message. } public class ClientThread implements Runnable { public void run() { Packet pac = new Packet().valueOf(ImgAuth.valueOf(ImgAuth.0.putExtra("Amt".0.valueOf(pac. intent. } .Result.0. pac. LoginActivity.Result = String.Password = String.toString())) { Intent intent = new Intent(getApplicationContext() . pac.obtain(handler. pac. 55)). startActivity(intent)."Invalid Image")).class).

data). null.decodeFile(imgurl). try{ if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) { Uri selectedImage = data. cursor.DATA }. resultCode. int columnIndex = cursor.setImageBitmap(ImgAuth).printStackTrace(). imageView.Media.} catch (IOException e) { e.query(selectedImage. null. } } } @Override protected void onActivityResult(int requestCode. /* imageView. Intent data) { super.onActivityResult(requestCode. Cursor cursor = getContentResolver().getData().Images. filePathColumn.printStackTrace().getColumnIndex(filePathColumn[0]). String[] filePathColumn = { MediaStore. ImgAuth = BitmapFactory. imgurl = cursor. cursor.moveToFirst(). } catch (ClassNotFoundException e) { e. int resultCode.close().getString(columnIndex).setDrawingCacheEnabled(true). . null).

os.widget.Uri. imageView. */ } } catch (Exception e) { // TODO: handle exception Toast.getMessage(). imageView. .LENGTH_SHORT).this.getMeasuredWidth().app. import android. MeasureSpec.UNSPECIFIED).createBitmap(imageView. e.makeMeasureSpec(0.setDrawingCacheEnabled(false).makeText(imageauth.View. import android. import android.view.imageView. import android.view. 0.layout(0.getDrawingCache()).OnClickListener.MediaStore.makeMeasureSpec(0.measure(MeasureSpec. Toast.Intent. import android. import android. } } } ADDUSER package com.net. imageView.Button. import android.content.paymentserver.Activity. MeasureSpec.example.View.UNSPECIFIED)).provider. MeasureSpec. imageView.database. imageView.getMeasuredHeight()).buildDrawingCache(true). import android.Cursor.show(). ImgAuth = Bitmap.Bundle. import android.

import android.onCreate(savedInstanceState).setText(extras.id. ETName = (EditText)findViewById(R. ETUName = (EditText)findViewById(R. ETPass = (EditText)findViewById(R.getString("pass")).getString("imei")).widget.layout.ETEmail). setContentView(R. if(extras != null) { ETName. ETUName. . ETamt = (EditText)findViewById(R.import android.id.ETName). ETEmail. Bundle extras = getIntent().ETEmail.ETPass. @Override protected void onCreate(Bundle savedInstanceState) { super.setText(extras.adduser).id.ETImei).id.ETamt.EditText.ETAmt).getString("email")).ETUName.ETImei.setText(extras.getString("uname")).ETImg). ETPass. ETimg = (EditText)findViewById(R.Toast.id.setText(extras.widget.ETimg. public class adduseractivity extends Activity { EditText ETName.ETPass).getExtras().ETUName).getString("name")). ETImei. ETEmail = (EditText)findViewById(R. ETImei = (EditText)findViewById(R.id.id.setText(extras.

1).id. ETimg.getString("url")).ETamt.id.MediaStore.getString("amount")).provider.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub .setText(extras. btnRegisButton.Btnbrw).setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent i = new Intent(Intent.setText(extras. BtnBrw.BtnRegister). startActivityForResult(i. } Init().EXTERNAL_CONTE NT_URI).Images.android.ACTION_PICK. Button btnRegisButton = (Button)findViewById(R.Media. } }). } void Init() { Button BtnBrw = (Button)findViewById(R.

makeText(adduseractivity.toString(). "This User Name Already Exists".getText(). ETImei.Media.getText(). DatabaseHandler db = new DatabaseHandler(adduseractivity.this). startActivity(myIntent).this. data). Intent data) { super.DATA }. Intent myIntent = new Intent(adduseractivity.show(). } else { Toast.toString().onActivityResult(requestCode.toString().Images.getText(). usr = new User(ETName.toString(). int resultCode. if (requestCode == 1 && resultCode == RESULT_OK && null != data) { Uri selectedImage = data.getText(). finish().addPlan(usr). resultCode. Toast.getText().getText().toString())) { db. String[] filePathColumn = { MediaStore.class).User ETUName. } } }). MainActivity.LENGTH_SHORT).this. ETPass.getText().getData().toString()).CheckUser(ETUName.toString().toString(). ETimg. if(!db. ETamt. } @Override protected void onActivityResult(int requestCode. .getText(). ETEmail.

.getColumnIndex(filePathColumn[0]). int columnIndex = cursor. null).Cursor cursor = getContentResolver(). the Android-based mobile payment service can perform well and securely using 3 factor authentications like pin code. null.getString(columnIndex). more multi-factor authentication features and virtual private networking features will keep being developed and integrated. ETimg.moveToFirst(). CONCLUSION: In this project. filePathColumn. null. String picturePath = cursor. face image authentication. cursor.close(). usim number. cursor.query(selectedImage. } } } FUTURE SCOPE: In the near future.setText(picturePath).

B. “Face Recognition using View-Based and Modular Eigenspaces. pp. pp. Jun. 2003.” Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition. [3] V. [2] L. 19. Fellous. 84–91. . Moghaddam. vol. and T. and C. Kuiger. 25.” IEEE Transactions on Pattern Analysis and Machine Intelligence. pp. J. “Face recognition by elastic bunch graph matching. Vetter. Wiskott. Blanz and T. Sep. Jul. 775–779. “Face recognition based on fitting a 3D morphable model.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Starner. von der Malsburg. M. 1603–1074. 1997. 1994.REFERENCES: [1] A. N. Pentland. vol.

” IEEE Transactions on Pattern Analysis and Machine Intelligence. “Fast face identification under varying pose from a single 2-D model view.android. I. C. Shan. Gao. 1997.html . “Pose normalization for robust face recognition based on statistical affine transformation. Schneider. pp. Leung. and W. vol. pp.” Proceedings of IEEE International Conference on Information. pp. M. 19. 148. C. pp. “Android Developers. Dec. [5] S. Baker. K. W. Gao. 26. 2004. Communications and Signal Processing. Hui. [8] Google. Wang. Cootes. Taylor. and T. 248–253. “Automatic interpretation and coding of face images using flexible models.” IEEE Transactions on Pattern Analysis and Machine Intelligence. Jul. [6] X. Matthews. vol. vol.[4] A. Oct. Available: http://developer. “Automatic construction of active appearance models as an image coding problem. 3. and S. F. 1380–1384. Image and Signal Processing.” IEE Proceedings of Vision. 2001. [7] Y.” [Online]. 743–756. vol. Aug.com/index. S. 2003. and J. H. Lanitis. 1413–1417. J. Chai.