ABSTRACT
This system uses Android based mobile phones for the software to be run.
For convenience, the alerts are also stored in the centralized server like the details
of incoming call, text and multimedia messages and the timely location update of
their user. This use Android Apps will include photo capture in cloud-based
document sync, transfer and storage service, as well as updated in Android. That
means users can transfer documents to the cloud or other devices securely from the
popular Android. Sometime accident the vehicle on the road that use this Android
apps phones capture the incident photos that will be directly send to police station.
It uses this Android Mobile apps is current location and time through the GPS. For
convenience, the alerts are also stored in the centralized cloud server like the
details of send. And another module can be emergency buttons. The buttons are
defined normal, critical and very critical. These buttons are help to the users. The
user can need any help from others that time the user can be use these buttons and
send the emergency message.
EXISTING SYSTEM:
Drawback
PROPOSED SYSTEM:
Advantage:
Reduced Time.
It helps easy to know exact location.
Consider image as main evidence.
Modules:
Export
Connecting to server
Tracking location
Send sms
Allows fetching of location from the GPS receiver or from the network-
based location services. This module is used to the GPS use attach the location
tracked by satellite and that time collect data and in to the unit. The GPS location
finder unit has a wireless modem inside the Android Smartphones. This modem is
used to communicate with Global Trackings systems. The GPS data also fetch
with the captured image and send to police control room. All of this happens in
single process real-time.
EXPORT:
This module represents the web service; finally collected data was
stored in local db. Then image converted to byte code, validate the collected
information, and capture the IP address in particular android technology, because
security purpose, finally all collected data was sent to web server.
CONNECTING TO SERVER:
This module is used for send captured image and GPS data was store
the web server. The connecting function with accuracy data was send to web
server, this collect the information was received to data modules.
Server Module:
This module finds the image sender place, time and more information
for future process. To help in our police control room track easily to way process,
can be received to the data will be collect web server. The find out the location will
be GPS track use android Smartphones view the correct crime or accident zone.
SEND SMS:
This module can be used to the user.Define a phone number and whenever you
press the button, the distress signal will be sent out to these recipients along with
your personalized message.
HARDWARE REQUIREMENT
SOFTWARE REQUIREMENT
Language : JAVA
IDE : Eclipse
Documentation : Ms-Office
Data Flow Diagram
User DFD:
Find Place from
Google server
GPS Location
Fetching
Store Data
Main Server
Receive address
User
Send captured photo & address
Receive captured photo & address (selected date)
Server DB
Collected
info from
user
View the
image and
location
Image
Cell Internet
Phone
Click
emergency
buttons
Image type
Alert Message
ER Diagram: Click
emergency
button
Image name
Location
Accident/crime Image
User
Captured
by
Admin
Send to
Use case Diagram:
Capture image
GPS
User
Click emergency
button
About Android:
System Requirements:
1.Android:
Android is a software stack for mobile devices that includes an
operating system, middleware and key applications. The Android SDKprovides the
tools and APIs necessary to begin developing applications on the Android platform
using the Java programming language.
Android applications are developed using Java and can be ported rather
easily to the new platform. If you have not yet downloaded Java or are unsure
about which version you need, I detail the installation of the development
environment. Other features of Android include an accelerated 3-D graphics engine
(based on hardware support), database support owner by SQLite, and an integrated
web browser.
Android Market filters the applications that are visible to users, so that users
can see and download only those applications that are compatible with their
devices. One of the ways Market filters applications is by feature compatibility.
Android Features:
Handset layouts:
The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics
library based on OpenGL ES 2.0 specifications, and traditional Smartphone
layouts.
Storage:
SQLite, a lightweight relational database, is used for data storage purposes.
Connectivity:
Android supports connectivity technologies including GSM/EDGE, IDEN,
CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.
Messaging:
SMS and MMS are available forms of messaging, including threaded text
messaging and now Android Cloud to Device Messaging (C2DM) is also a part of
Android Push Messaging service.
Multiple language support:
Android supports multiple languages.
Web browser:
The web browser available in Android is based on the open-source Web Kit
layout engine, coupled with Chrome's V8 JavaScript engine. The browser scores
100/100 on the Acid3 test on Android 4.0; however, it does have some rendering
issues.
Java support:
While most Android applications are written in Java, there is no Java Virtual
Machine in the platform and Java byte code is not executed. Java classes are
compiled into Dalvik executables and run on Dalvik, a specialized virtual machine
designed specifically for Android and optimized for battery-powered mobile
devices with limited memory and CPU. J2ME support can be provided via third-
party applications.
Media support:
Android supports the following audio/video/still media formats: WebM,
H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP
container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis,
FLAC, WAV, JPEG, PNG, GIF, and BMP.
Multi-touch:
Android has native support for multi-touch which was initially made
available in handsets such as the HTC Hero. The feature was originally disabled at
the kernel level (possibly to avoid infringing Apple's patents on touch-screen
technology at the time). Google has since released an update for the Nexus One
and the Motorola Droid which enables multi-touch natively.
Bluetooth:
Supports A2DP, AVRCP, sending files (OPP), accessing the phone book
(PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and
joystick (HID) support is available in Android 3.1+, and in earlier versions through
manufacturer customizations and third-party applications.
Video calling:
Android does not support native video calling, but some handsets have a
customized version of the operating system that supports it, either via the UMTS
network (like the Samsung Galaxy S) or over IP. Video calling through Google
Talk is available in Android 2.3.4 and later. Gingerbread allows Nexus S to place
Internet calls with a SIP account. This allows for enhanced VoIP dialing to other
SIP accounts and even phone numbers. Skype 2.1 offers video calling in Android
2.3, including front camera support.
Tethering:
Android supports tethering, which allows a phone to be used as a
wireless/wired Wi-Fi hotspot. Before Android 2.2 this was supported by third-party
applications or manufacturer customizations.
Screen capture:
Android natively supports the ability to capture a screenshot by method of
pressing both the power and volume-down buttons at the same time on an Android
device. This native support was first included within the Android 4.0 (Ice Cream
Sandwich) update, which is first seen on the Galaxy Nexus Smartphone.
Previously, Android did not feature native support for screen capturing which
would have likely been due to security concerns. Face Unlock" facial
recognition for unlock screen. NFC-based content sharing with
multiple ICS phones (Web Addresses, contacts, maps, YouTube
videos, app sharing). Furthermore, prior manufacturer and third-party
customizations as well as using a PC connection (DDMS developer's tool) were the
only known methods of capturing a screenshot on Android.
2. Eclipse:
Why is Eclipse the recommended IDE for Android applications? There are a
few reasonsfor this particular endorsement:
In keeping with the Open Handset Alliances theme of truly opening the
mobile development market, Eclipse is one of the most fully featured, free,
Java IDEs available. Eclipse is also very easy to use, with a minimal
learning curve. This makes Eclipse a very attractive IDE for solid, open Java
development.
The Open Handset Alliance has released an Android plug-in for Eclipse that
allows you to create Android-specific projects, compile them, and use the
Android Emulator to run and debug them. These tools and abilities will
prove invaluable when you are creating your first Android apps. You can still
create Android apps in other IDEs, but the Android plug-in for Eclipse
creates certain setup elementssuch as files and compiler settingsfor you.
The help provided by the Android plug-in for Eclipse saves you precious
development time and greatly reduces the learning curve, which means you
can spend more time creating incredible applications.
Eclipse Features:
Open Implementation:
This new option available under the Navigate menu allows the users
to open an implementation of the abstract method within the same hierarchy.
If there is more than one implementation for a particular method then it
shows all such implementations in a quick type hierarchy pop up box. By
default, no short cut keys are assigned for this option.
Virtual Folders:
Virtual Folders, as the name itself indicates, these new type of folders
are purely virtual in nature, meaning they are visible in the workspace but,
there wont be any real folder on the file system. These folders can contain
only other virtual folders & linked resources.
3. SQL browser:
SQL (Structured Query Language) is used to modify and
access data or information from a storage area called database.
This beginner sql tutorial website teaches you the basics of SQL
and how to write SQL queries. I will be sharing my knowledge on
SQL and help you learn SQL better. The sql concepts discussed in
this tutorial can be applied to most of database systems. The
syntax used to explain the concepts is similar to the one used in
Oracle database.
SQL Features:
Vendor Independence:
SQL is offered by all of the leading DBMS vendors, and no new database
product over the last decade has been highly successful without SQL support. A
SQL-based database and the programs that use it can be moved from one DBMS to
another vendor. DBMS with minimal conversion effort and little retraining of
personnel. Database tools, such as query tools, report writers, and application
generators, work with many different brands of SQL databases. The vendor
independence thus provided by SQL was one of the most important reasons for its
early popularity and remains an important feature today.
A major area of SQL development over the last five to ten years has been the
integration of SQL with Java. Seeing the need to link the Java language to existing
relational databases, Sun Microsystems (the creator of Java) introduced Java
Database Connectivity (JDBC), a standard API that allows Java programs to use
SQL for database access. JDBC received a further boost when it was adopted as
the data access standard within the Java2 Enterprise Edition (J2EE) specification,
which defines the operating environment provided by all of the leading Internet
application servers. In addition to its role as a programming language from which
databases are used, many of the leading database vendors have also announced or
implemented Java support within their database systems, allowing Java to be used
as a language for stored procedures and business logic within the database itself.
This trend toward integration between Java and SQL will insure the continued
importance of SQL in the new era of Java-based programming.
4. SQL Database:
SQLite supports the data types TEXT (similar to String in Java), INTEGER
(similar to long in Java) and REAL (similar to double in Java). All other types must
be converted into one of these fields before saving them in the database. SQLite
itself does not validate if the types written to the columns are actually of the
defined type, you can write an integer into a string column.
Zero-Configuration:
SQLite does not need to be "installed" before it is used. There is no "setup"
procedure. There is no server process that needs to be started, stopped, or
configured. There is no need for an administrator to create a new database instance
or assign access permissions to users. SQLite uses no configuration files. Nothing
needs to be done to tell the system that SQLite is running. No actions are required
to recover after a system crash or power failure. There is nothing to troubleshoot.
A SQLite database is a single ordinary disk file that can be located anywhere
in the directory hierarchy. If SQLite can read the disk file then it can read anything
in the database. If the disk file and its directory are writable, then SQLite can
change anything in the database. Database files can easily be copied onto a USB
memory stick or emailed for sharing.
Manifest typing:
Most SQL database engines use static typing. A datatype is associated with
each column in a table and only values of that particular datatype are allowed to be
stored in that column. SQLite relaxes this restriction by using manifest typing. In
manifest typing, the data type is a property of the value itself, not of the column in
which the value is stored. SQLite thus allows the user to store any value of any
data type into any column regardless of the declared type of that column. (There
are some exceptions to this rule: An INTEGER PRIMARY KEY column may only
store integers. And SQLite attempts to coerce values into the declared datatype of
the column when it can).
Variable-length records:
Most other SQL database engines allocated a fixed amount of disk space for
each row in most tables. They play special tricks for handling BLOBs and CLOBs
which can be of wildly varying length. But for most tables, if you declare a column
to be a VARCHAR(100) then the database engine will allocate 100 bytes of disk
space regardless of how much information you actually store in that column.
SQLite, in contrast, use only the amount of disk space actually needed to
store the information in a row. If you store a single character in a VARCHAR(100)
column, then only a single byte of disk space is consumed. (Actually two bytes -
there is some overhead at the beginning of each column to record its data type and
length).
Every SQL database engine compiles each SQL statement into some kind of
internal data structure which is then used to carry out the work of the statement.
But in most SQL engines that internal data structure is a complex web of
interlinked structures and objects. In SQLite, the compiled form of statements is a
short program in a machine-language like representation. Users of the database can
view this virtual machine language by prepending the EXPLAIN keyword to a
query.
Conclusion:
Using this project users can intimate the accident/crime events to the control room.
By sending this photo the gps location can be known by the control room and also
the sender information for the further investigation. Users need not to worry about
the unknown locations.
Future Enhancement:
For the future work the accident zone intimation can be given on the phone
applications before reaching the accident zone location. This can avoid the
unpredictable accidents.
Home Screen:
Input screen:
Capturing Image:
Saving image with GPS location:
View all:
Viewing the captured list using password:
Sample Coding:
package com.singlephotocap;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.AutoFocusCallback;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.media.ExifInterface;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Images.Media;
import android.telephony.TelephonyManager;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
int count=0;
@Override
super.onCreate(savedInstanceState);
setContentView(R.layout.camerapage);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
surfaceView = (SurfaceView)findViewById(R.id.cameraview);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceHolder.setKeepScreenOn(true);
controlInflater = LayoutInflater.from(getBaseContext());
this.addContentView(viewControl, layoutParamsControl);
buttonTakePicture = (Button)findViewById(R.id.btncameracapture);
this.buttonTakePicture.setOnClickListener(new
View.OnClickListener() {
@Override
if(count<=1)
{
count++;
camera.takePicture(myShutterCallback,null,
myPictureCallback_JPG);
else
Toast.makeText(getApplicationContext(), "Photo
Already Captured",Toast.LENGTH_LONG).show();
});
buttonClose = (Button)findViewById(R.id.btncameraclose);
buttonClose.setOnClickListener(new View.OnClickListener() {
@Override
CameraPage.this.finish();
});
RelativeLayout layoutBackground =
(RelativeLayout)findViewById(R.id.back);
layoutBackground.setOnClickListener(new
RelativeLayout.OnClickListener(){
@Override
buttonTakePicture.setEnabled(false);
camera.autoFocus(myAutoFocusCallback);
}});
@Override
// @Override
// }};
@Override
OutputStream outStream;
try
{
outStream= new
FileOutputStream(filePath);
outStream.write(data);
outStream.flush();
outStream.close();
SessionValues.ImagePath=String.valueOf(filePath);
Toast.makeText(CameraPage.this,"Image
Saved" ,Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
camera.startPreview();
}};
AutoFocusCallback myAutoFocusCallback = new
AutoFocusCallback(){
@Override
buttonTakePicture.setEnabled(true);
}};
@Override
if(previewing){
camera.stopPreview();
Camera.Parameters parameters =
camera.getParameters();
parameters.setPreviewSize(arg2, arg3);
camera.setParameters(parameters);
try {
camera.setPreviewDisplay(arg0);
camera.startPreview();
} catch (IOException e) {
e.printStackTrace();
previewing = true;
@Override
camera = Camera.open();
@Override
public void surfaceDestroyed(SurfaceHolder arg0)
{
camera.stopPreview();
camera.release();
camera = null;
previewing = false;
@Override
if(keyCode ==
KeyEvent.KEYCODE_BACK){
startActivity(new
Intent(CameraPage.this,FirstScreen.class));
CameraPage.this.finish();