Fundamentals
Introduction
1st Android Application

OOPS Concepts
Class
Object
Abstraction
Encapsulation

Polymorphism
Inheritance
Message Passing
Dynamic Binding

UI Controls
TextView
Button
Toggle Button
CheckBox
Radio Button
Spinner
ProgressBar
SeekBar
RadioGroup
RatingBar
Switch
EditText
AutoComplete
TextView

MultiAutoComplete
TextView

ImageView
ImageButton
Gallery
MediaPlayer
VideoView
MediaController

TimePicker
DatePicker
CalendarView
Chronometer
Analog Clock
Digital Clock

Layouts
LinearLayout
RelativeLayout
GridLayout
TableLayout
FrameLayout
Fragment

Composite
ListView
ExpandableListView
GridView
ScrollView
SearchView
Sliding Drawer
Tab Widget
WebView

Transitions
Image Switcher
StackView
TextSwitcher
ViewAnimator
View Flipper
View Switcher

Advanced
Request Focus
View
View Stub
TextureView
Gesture Overlay View

SurfaceView
NumberPicker
Zoom Button
Zoom Controls
AbsoluteLayout

Database
SharedPreference
SQLite DB
MySQL DB

Webservices
Check HttpURLConnection
Single Webservice Call
Multi Webservice Call
ListView from Webservice
SQLite from Webservice
Data from Database

Telephone Manager
IMEI
IMSI
Phone Type
Sim Type
Network Type

Content Providers
Contact Provider
BookMark Provider
Own Provider


Message & Networking
Send SMS
SMS with Reports
Group SMS

Send E-Mail
Download Binary Data


Location Based Service
Display Google Map
Events with Google Map

Android Services
Create Service
Create Longtime Service

Asynchronous Task
Repeating Services
IntentService

Activity from a Service
Bind Activity to Service


Sample Projects
HMS
CNB
Login Screen
Camera Event
Browse Option
QR Code Events
Accelerometer Sensor
EditText from Spinner

Android QR Code Events

  1. Scan this QR Code..
  2. Generate QR Code in Android
  3. Scan or Read QR Code in Android

Note                     Download ADT Plugin Here.
Here I am using,
OS : Linux (Ubuntu 12.04)
Eclipse : Juno (Version 4.2.0)
Android API Level : 3 to 'n' as per need
Emulator API Level : It will be displayed in output image

A. Scan this QR Code..



Output




B. Generate QR Code in Android


Note : In Android Market many Apps available for QR Code Events. Here I am using QR Droid. Install QR Droid Application in your Device.

Step 1 : Select File -> New -> Project -> Android Application Project (or) Android Project. Fill the forms and click "Finish" button. If you have any doubt regarding create a new project Click Here.

Step 2 : Open res -> layout -> activity_main.xml (or) main.xml and add following code :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <TextView
        android:id="@+id/textView1"
        android:textColor="#4169E1"
        android:textSize="20sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="QR Code Generator" />
 
    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:inputType="textMultiLine" />
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="Generate" />
    
    <ImageView
	android:id="@+id/img_result"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_centerInParent="true"
	android:visibility="gone" />
	
</RelativeLayout>

Step 3 : Open src -> package -> MainActivity.java and add following code :

package balaji.qrcode_generate;
 
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
 
public class MainActivity extends Activity {
	
	private static final int ACTIVITY_RESULT_QR_DRDROID = 0;
	
	Button generate;
	EditText edit;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		generate = (Button) findViewById(R.id.button1);
		edit = (EditText) findViewById(R.id.editText1);
		
		generate.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				String code = edit.getText().toString();
				
				if(code.trim().length() == 0) {
					
					Toast.makeText(getBaseContext(), 
						"Enter Text", Toast.LENGTH_SHORT ).show();
					return;
				}
				
				Intent encode = new Intent("la.droid.qr.encode"); 
				encode.putExtra("la.droid.qr.code", code);			
				encode.putExtra("la.droid.qr.image", true);
				encode.putExtra("la.droid.qr.size", 0);
								
				try {
					
					startActivityForResult(encode, ACTIVITY_RESULT_QR_DRDROID);
				}
				catch (ActivityNotFoundException activity) {
					
					qrDroidRequired(MainActivity.this);
				}
			}
		});
	}
 
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		
		if(ACTIVITY_RESULT_QR_DRDROID == requestCode 
				&& data != null && data.getExtras() != null ) {
			
			ImageView imgResult = ( ImageView ) findViewById(R.id.img_result);
							
			String qrCode = data.getExtras().getString("la.droid.qr.result");
				
			if(qrCode == null || qrCode.trim().length() == 0) {
					
				Toast.makeText(getBaseContext(), "QR Code Image " +
					"is not Saved", Toast.LENGTH_LONG).show();
				return;
			}
				
			Toast.makeText(getBaseContext(), "QR Code Image is Saved" 
				+ " " + qrCode, Toast.LENGTH_LONG).show();
				
			imgResult.setImageURI( Uri.parse(qrCode) );
				
			imgResult.setVisibility( View.VISIBLE );			
		}
	}	
	
	/* 
	 * 
	 * If we don't have QRDroid Application in our Device, 
	 * It will call below method (qrDroidRequired)
	 * 
	 */
	
	protected static void qrDroidRequired(final MainActivity activity) {
		// TODO Auto-generated method stub
		
		AlertDialog.Builder AlertBox = new AlertDialog.Builder(activity);
		
		AlertBox.setMessage("QRDroid Missing");
		
		AlertBox.setPositiveButton("Direct Download", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				
				activity.startActivity(new Intent(Intent.ACTION_VIEW, 
					Uri.parse("http://droid.la/apk/qr/")));
			}
		});
		
		AlertBox.setNeutralButton("From Market", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
				activity.startActivity(new Intent(Intent.ACTION_VIEW, 
					Uri.parse("http://market.android.com/details?id=la.droid.qr")));
			}
		});
		
		AlertBox.setNegativeButton("Cancel", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
				dialog.cancel();
			}
		});
		
		AlertBox.create().show();
	}
	
	@Override
    public void onConfigurationChanged(Configuration newConfig) {
    	super.onConfigurationChanged(newConfig);
    	//Nothing
    }
}

Step 4 : Open AndroidManifest.xml and add following code :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="balaji.qrcode_generate"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="17" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="balaji.qrcode_generate.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

Step 5 : Open res ->values ->strings.xml and add following code :

<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">QRCode_Generate</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
 
</resources>

Step 6 : Our output will be like this :


Output


Run this Program in Real Device








C. Scan or Read QR Code in Android


Note : In Android Market many Apps available for QR Code Events. Here I am using QR Droid. Install QR Droid Application in your Device.

Step 1 : Select File -> New -> Project -> Android Application Project (or) Android Project. Fill the forms and click "Finish" button. If you have any doubt regarding create a new project Click Here.

Step 2 : Open res -> layout -> activity_main.xml (or) main.xml and add following code :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
 
    <TextView
        android:id="@+id/textView1"
        android:textSize="20sp"
        android:textColor="#4169E1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="QR Code Scanner" />
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="Scan" />
 
    <TextView
        android:id="@+id/textView2"
        android:textSize="18sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Scan Report" />
 
</RelativeLayout>

Step 3 : Open src -> package -> MainActivity.java and add following code :

package balaji.qrcode_scan;
 
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
	private static final int ACTIVITY_RESULT_QR_DRDROID = 0;
	
	TextView report;
	Button scan;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		report = (TextView) findViewById(R.id.textView2);
		scan = (Button) findViewById(R.id.button1);
		
		scan.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				
				Intent i = new Intent("la.droid.qr.scan");
				
				try {
					
					startActivityForResult(i, ACTIVITY_RESULT_QR_DRDROID);
				} 
				catch (ActivityNotFoundException activity) {
					
					MainActivity.qrDroidRequired(MainActivity.this);
				}
			}
		});
	}	
 
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		
		if( ACTIVITY_RESULT_QR_DRDROID == requestCode 
				&& data != null && data.getExtras() != null ) {
			
			String result = data.getExtras().getString("la.droid.qr.result");
			
			report.setText(result);
			report.setVisibility(View.VISIBLE);
		}
	}
 
	/* 
	 * 
	 * If we don't have QRDroid Application in our Device, 
	 * It will call below method (qrDroidRequired)
	 * 
	 */
	
	protected static void qrDroidRequired(final MainActivity activity) {
		// TODO Auto-generated method stub
		
		AlertDialog.Builder AlertBox = new AlertDialog.Builder(activity);
		
		AlertBox.setMessage("QRDroid Missing");
		
		AlertBox.setPositiveButton("Direct Download", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				
				activity.startActivity(new Intent(Intent.ACTION_VIEW, 
					Uri.parse("http://droid.la/apk/qr/")));
			}
		});
		
		AlertBox.setNeutralButton("From Market", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
				activity.startActivity(new Intent(Intent.ACTION_VIEW, 
					Uri.parse("http://market.android.com/details?id=la.droid.qr")));
			}
		});
		
		AlertBox.setNegativeButton("Cancel", new OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
				dialog.cancel();
			}
		});
		
		AlertBox.create().show();
	}
	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}
}

Step 4 : Open AndroidManifest.xml and add following code :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="balaji.qrcode_scan"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="17" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="balaji.qrcode_scan.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

Step 5 : Open res ->values ->strings.xml and add following code :

<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">QRCode_Scan</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
 
</resources>

Step 6 : Our output will be like this :


Output


Run this Program in Real Device








SHARE THIS PAGE



product 2

product 3

product 4

Feedbacks : balaji.scz@gmail.com