Thursday, June 30, 2011

9 ways to improve your programming skills.

1. Learn a new programming language.
2. Read a good, challenging programming book.
Like: The Art of Computer Programming
Structure and interpretation of computer Programs.
A Discipline of Programming
3. Join an Open Source Project.
You Can join: GitHub, SourceForge,gitorius, bitBucket, Ohloh
4. Solve Programming puzzles.
5. Program Start writing a program. scratch. design all of the architechture and implement.
6. Read And Study Code.
7. Hang Out as programming sites and read blogs.
8. Write about coding.
9. learn low level programming like C, Assembly language.

JUnit Test Case with Example.

Here is Sample example on Junit Text Case.

Let's Test Some Code

public class Main {

public static void main(String[] args) {
}
static public int add(int a, int b) {
return a + b;
}

}


now i want to test about class using Junit Test case. fot test we require to import "junit.framework.*" and extend TestCase

import junit.framework.*;
public class TestMaths extends TestCase{

public void testMaths() {
int num1 = 2;
int num2 = 3;
int total = 5;
int sum = 0;
sum = Main.add(num1, num2);
assertEquals(sum, total);
}
}


Here i am using Netbeans. now run TestMaths file you can see out put on console.

Summary:
That's it! This example may be help full to getting start JUnit.

enjoy!

Tuesday, June 21, 2011

Android Flip View Example

Here i try to explain Android Flip View. Flip View is use to flip one view to another with use android set of animation.

Create Following Activity FlipeActivity.java file
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ViewFlipper;

public class FlipeActivity extends Activity {
ViewFlipper flipper;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
flipper=(ViewFlipper)findViewById(R.id.details);
flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.push_left_out));
Button btn=(Button)findViewById(R.id.flip_me);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
flipper.showNext();
}
});

}


}

we load here Animation xml file so we create first "anim" folder and create following file with set.
push_left_in.xml
xmlns:android="http://schemas.android.com/apk/res/android">
android:fromXDelta="100%p" android:toXDelta="15" android:duration="500"/>


push_left_out.xml
xmlns:android="http://schemas.android.com/apk/res/android">
android:fromXDelta="0" android:toXDelta="-100%p" android:duration="500"/>

main.xml
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>

you can find more animation set here with example..
http://code.google.com/p/android-helloworld-samples/source/browse/trunk/ApiDemos/res/anim/

Monday, June 20, 2011

Android Services Example

Create Following Class for Services.

import android.app.Service;
import android.content.Intent;

import android.os.IBinder;
import android.util.Log;


public class MyServices extends Service{
private static final String TAG = MyServices.class.getSimpleName();
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG,"MyServices Created");
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
Log.d(TAG,"MyServices Started");
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG,"MyServices Destroyd");
}

}

Register Services in AndroidManifest.xml file.

service android:name=".MyServices"


Call(Start) Services in Activity.

startService(new Intent(this,MyServices.class));

Blackberry Contact Event Handling.

Blackberry Contact Event Handling.

import java.util.Enumeration;
import java.util.Enumeration;
import javax.microedition.pim.Contact;
import javax.microedition.pim.ContactList;
import javax.microedition.pim.PIMItem;
import javax.microedition.pim.PIMList;
import net.rim.blackberry.api.pdap.PIMListListener2;

final class MyPIMListener implements PIMListListener2 {
public void itemAdded(PIMItem item) {
if (item == null) {
return;
}
}

public void itemRemoved(PIMItem item) {
if (item == null) {
return;
}
}

public void itemUpdated(PIMItem oldItem, PIMItem newItem) {
if (oldItem == null || newItem == null) {
return;
}
itemRemoved(oldItem);
itemAdded(newItem);
}

public void batchOperation(PIMList list) {
if (list == null) {
return;
}
try {
ContactList contactList = (ContactList) list;
Enumeration e = contactList.items();
while (e.hasMoreElements()) {
Contact contact = (Contact) e.nextElement();
// ...
}
} catch (Exception e) {
// ...
}
}
}

Wednesday, June 15, 2011

Start android application on when Device start Or Boot Startup

Create MyBootStartUpListener.java in.

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class MyBootStartUpListener extends BroadcastReceiver{
private static final String TAG = MyBootStartUpListener.class.getSimpleName();
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.d(TAG, "My BootStartup");
try{
Intent homeIntent = new Intent(context,bootStartupActivity.class);
homeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(homeIntent);
}catch(Exception e){
System.err.println(e);
}
Log.d(TAG, "My BootStartup succefully");
}

}



receiver android:name=".MyBootStartUpListener"
intent-filter
action android:name="android.intent.action.BOOT_COMPLETED"
category android:name="android.intent.category.HOME"
intent-filter
receiver

Android Notification Example

Hi This is you can add notification in android.

NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.notification_icon;
CharSequence tickerText = "Hello";
long when = System.currentTimeMillis();

Notification notification = new Notification(icon, tickerText, when);
CharSequence contentTitle = "Hello world";
CharSequence contentText = "Description";
Intent notificationIntent = new Intent(this, MyNoticiationActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

notification.setLatestEventInfo(this, contentTitle, contentText, contentIntent);
mNotificationManager.notify(KEEPUS_NOTIFICATION_ID, notification);

Sunday, June 12, 2011

Android Recipes and Snippets

Android Recipes and Snippets

I've put together a small collection of Android recipes. For each of these recipes, this is an instance of Context (more specifically, Activity or Service) unless otherwise noted. Enjoy :)

Intents
One of the coolest things about Android is Intents. The two most common uses of Intents are starting an Activity (open an email, contact, etc.) and starting an Activity for a result (scan a barcode, take a picture to attach to an email, etc.). Intents are specified primarily using action strings and URIs. Here are some things you can do with the android.intent.action.VIEWaction and startActivity().
Intent intent = new Intent(Intent.ACTION_VIEW);
// Choose a value for uri from the following.
// Search Google Maps: geo:0,0?q=query
// Show contacts: content://contacts/people
// Show a URL: http://www.google.com
intent.setData(Uri.parse(uri));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Other useful action/URI pairs include:
  • Intent.ACTION_DIAL, tel://8675309
  • Intent.ACTION_CALL, tel://8675309
More interesting things are available when you use startActivityForResult(). For example, to scan a barcode:
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, 0);
Then, add onActivityResult to your activity.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && requestCode == 0) {
Bundle extras = data.getExtras();
String result = extras.getStringExtra("SCAN_RESULT");
// ...
}
}
Taking a picture is done like so:
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, 0);
// ...

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && requestCode == 0) {
String result = data.toURI();
// ...
}
}
Check out the OpenIntents registry for more information.

Wifi

The WifiManager can be used to enable and disable wifi. Where enabled is a boolean, it's as easy as:
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifi.setWifiEnabled(enabled);
Notifications
Text notifications (called Toast) which appear briefly above all activities are also easy:
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
You can increase the time the notification is displayed by using Toast.LENGTH_LONG instead.

Alert and Input Dialogs
Sometimes it's useful to prompt the user for input. An easy way to do that without creating a new layout is to useAlertDialog.Builder.
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle(title);
alert.setMessage(message);

// You can set an EditText view to get user input besides
// which button was pressed.
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText();
// Do something with value!
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});

alert.show();
Location
Use the LocationManager to start up the GPS and listen for location updates.
LocationManager locator = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
if (location != null) {
location.getAltitude();
location.getLatitude();
location.getLongitude();
location.getTime();
location.getAccuracy();
location.getSpeed();
location.getProvider();
}
}

public void onProviderDisabled(String provider) {
// ...
}

public void onProviderEnabled(String provider) {
// ...
}

public void onStatusChanged(String provider, int status, Bundle extras) {
// ...
}
};

// You need to specify a Criteria for picking the location data source.
// The criteria can include power requirements.
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_COARSE); // Faster, no GPS fix.
criteria.setAccuracy(Criteria.ACCURACY_FINE); // More accurate, GPS fix.
// You can specify the time and distance between location updates.
// Both are useful for reducing power requirements.
mLocationManager.requestLocationUpdates(mLocationManager.getBestProvider(criteria, true),
MIN_LOCATION_UPDATE_TIME, MIN_LOCATION_UPDATE_DISTANCE, mLocationListener,
getMainLooper());
You can also get the phone's last known location using the LocationManager. This is faster than setting up aLocationListener and waiting for a fix.
// Start with fine location.
Location l = locator.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (l == null) {
// Fall back to coarse location.
l = locator.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
SMS
Sending a text is done with the SmsManager.
SmsManager m = SmsManager.getDefault();
String destination = "8675309";
String text = "Hello, Jenny!";
m.sendTextMessage(destination, null, text, null, null);
Vibrate
You can vibrate the phone for a specified duration like so:
(Vibrator) getSystemService(Context.VIBRATOR_SERVICE).vibrate(milliseconds);
Sensors
Accessing sensor data is done using the SensorManager.
SensorManager mSensorManager = (SensorManager) getSystemService(Activity.SENSOR_SERVICE);
private final SensorListener mSensorListener = new SensorListener() {
public void onAccuracyChanged(int sensor, int accuracy) {
// ...
}

public void onSensorChanged(int sensor, float[] values) {
switch (sensor) {
case SensorManager.SENSOR_ORIENTATION:
float azimuth = values[0];
float pitch = values[1];
float roll = values[2];
break;
case SensorManager.SENSOR_ACCELEROMETER:
float xforce = values[0];
float yforce = values[1];
float zforce = values[2];
break;
case SensorManager.SENSOR_MAGNETIC_FIELD:
float xmag = values[0];
float ymag = values[1];
float zmag = values[2];
break;
}
}
};

// Start listening to all sensors.
mSensorManager.registerListener(mSensorListener, mSensorManager.getSensors());
// ...
// Stop listening to sensors.
mSensorManager.unregisterListener(mSensorListener);
Silence Ringer
You can use the AudioManager to enable and disable silent mode.
mAudio = (AudioManager) getSystemService(Activity.AUDIO_SERVICE);
mAudio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
// or...
mAudio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);