Thursday, January 31, 2013

ADL+ Maps API V2


ADL+ 2012-12-13 - Maps API V2


ADL+ 2013-01-24 Maps API v2 part2

Wednesday, January 30, 2013

Ice Age Village v1.0.5 Apk + Data Android


Enter the Ice Age universe! The official Ice Age app is here! Scrat’s hunt for his favorite acorn has opened a crack in the Earth’s crust, sending the animals scurrying for safety. Manny, Ellie, Diego and Sid decide to build a new village for their displaced friends. Help them in this heroic challenge and get ready for fun and surprises along the way!


ENTER THE ICE AGE UNIVERSE
• Immerse yourself in the unique world of Ice Age and interact with all of your favorite characters as they lead you on quests and missions
• Play mini-games featuring Scrat, everyone’s favorite saber-toothed squirrel

BUILD YOUR OWN DISTINCTIVE VILLAGE
• Build the most beautiful village for all the creatures of the Ice Age world
• Level-up to gain access to new animal species, cool buildings, unique decorations and much more
• Funny quests, side missions and additional daily challenges keep your village bustling with activity

LET YOUR FRIENDS JOIN THE FUN AND SEE WHO CAN BUILD THE BEST VILLAGE
• Invite your friends from Gameloft LIVE! & Facebook to play
• Visit all of your friends’ villages - “Like it,” take care of it and get rewarded for lending a hand

AND GET READY FOR MORE...
• Frequent updates will include new characters, buildings, quests and mini-games
• You might even receive exclusive sneak peeks of the new film, Ice Age: Continental Drift, in theaters this summer

ICE AGE: CONTINENTAL DRIFT, in theaters July 13, 2012. Scrat's nutty pursuit of the cursed acorn, which he's been after since the dawn of time, has world-changing consequences - a continental cataclysm that triggers the greatest adventure of all for Manny, Diego and Sid. In the wake of these upheavals, Sid reunites with his cantankerous Granny, and the herd encounters a ragtag menagerie of seafaring pirates determined to stop them from returning home. Check out trailers for the film within the Ice Age Village app!

Data Location: sdcard/Android/Obb

Click Here To Download

APK File
Direct Download Link - Direct Download Link

SD Data Files
Direct Download Link - Direct Download Link


Move Google Maps V2 with auto best zoom

We can build LatLngBounds object including certain points, and move GoogleMap to the bounds with auto estimated best zoom.

Move Google Maps V2 with auto best zoom


package com.example.androidmapsv2;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
import com.google.android.gms.maps.model.MarkerOptions;

import android.os.Build;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.FragmentManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.Toast;

public class MainActivity extends Activity {

private static final LatLng Leicester_Square = new LatLng(51.510278, -0.130278);
private static final LatLng Covent_Garden = new LatLng(51.51197, -0.1228);
private static final LatLng Piccadilly_Circus = new LatLng(51.51, -0.134444);
private static final LatLng Embankment = new LatLng(51.507, -0.122);
private static final LatLng Charing_Cross = new LatLng(51.5073, -0.12755);

final int RQS_GooglePlayServices = 1;
MapFragment myMapFragment;
GoogleMap myMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment =
(MapFragment)myFragmentManager.findFragmentById(R.id.map);
myMap = myMapFragment.getMap();
myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

myMap.addMarker(new MarkerOptions().position(Leicester_Square).title("Leicester Square"));
myMap.addMarker(new MarkerOptions().position(Covent_Garden).title("Covent Garden"));
myMap.addMarker(new MarkerOptions().position(Piccadilly_Circus).title("Piccadilly Circus"));
myMap.addMarker(new MarkerOptions().position(Embankment).title("Embankment"));
myMap.addMarker(new MarkerOptions().position(Charing_Cross).title("Charing Cross"));

final View mapView = getFragmentManager().findFragmentById(R.id.map).getView();
if (mapView.getViewTreeObserver().isAlive()) {
mapView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@SuppressLint("NewApi") // We check which build version we are using.
@Override
public void onGlobalLayout() {
LatLngBounds bounds = new LatLngBounds.Builder()
.include(Leicester_Square)
.include(Covent_Garden)
.include(Piccadilly_Circus)
.include(Embankment)
.include(Charing_Cross)
.build();

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
} else {
mapView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
myMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50));
}});
}

}

@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;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case R.id.menu_legalnotices:
String LicenseInfo = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(
getApplicationContext());
AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(MainActivity.this);
LicenseDialog.setTitle("Legal Notices");
LicenseDialog.setMessage(LicenseInfo);
LicenseDialog.show();
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
protected void onResume() {
super.onResume();

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
if (resultCode == ConnectionResult.SUCCESS){
Toast.makeText(getApplicationContext(),
"isGooglePlayServicesAvailable SUCCESS",
Toast.LENGTH_LONG).show();
}else{
GooglePlayServicesUtil.getErrorDialog(resultCode, this, RQS_GooglePlayServices);
}
}

}


download filesDownload the files.

The series:
A simple example using Google Maps Android API v2, step by step.

Tuesday, January 29, 2013

The Sims FreePlay v1.8.6 [Unlimited Coins] Apk + Data Android





From the creators of The Sims™ 3 series of best-selling mobile games, comes a COMPLETE Sims experience that you can play for FREE on Android.

** Now your Sims can rock out at the salon with exclusive new hairstyles, tattoos, make up, and our exclusive KATY PERRY Fashion Pack. **


LET THE FREEPLAY BEGIN! CREATE UP TO 16 CUSTOMIZED SIMS FROM HEAD TO TOE, AND…
• Design dream homes or get fully-furnished houses for your Sims
• Care for pets, grow gardens, even bake a cake
• Give your Sims careers and earn Simoleons to improve their situations
• Complete goals for Lifestyle Points, then spend them on hip items
• Live with your Sims in real-time (when it’s day or night for you, it’s the same for your Sims)!

…and most of all, play for FREE!
________________________________________

MORE SIM-ULATING POSSIBILITIES
Will your Sims be friends – or enemies? Form relationships with a slap, a high-five (or some Woohoo)! Make your town bustle with pet stores, car dealerships and supermarkets. Expand your city as you get more Sims.

Be free, Sims! Be free! The opportunities are limitless!
________________________________________

SCREENSHOTS:


NOTES:
- This all-new experience of The Sims is designed for play on Android devices and is not connected to our Facebook game.
- You must have an Internet connection to play, so please make sure your device is connected.
- To make sure your game experience is the best it can be – Please disable 4G before playing and note that we are currently addressing 4G compatibility.
- May not work on rooted devices.

Click Here To Download

APK File
Direct Download Link - Direct Download Link

SD Data Files
Direct Download Link - Download Link - Download Link


NBA JAM by EA SPORTS™ v01.00.44 Apk + Data Android


BOOMSHAKALAKA!!!!
Jam with your favorite stars from all 30 NBA teams in over-the-top, high-flying, 2-on-2 arcade basketball just like you remember it – and like you’ve never seen before!


PLAY NOW! PLAY CLASSIC! PLAY HEAD-TO-HEAD AGAINST A FRIEND!
3 modes of play let you ball the way you want:
• Play Now – Select a team and jump right into the ballgame.
• Classic Campaign – Defeat all other teams to win the championship, and unlock legends, hidden players, and outrageous cheats.
• Local Multiplayer – Go big head 2 big head against a friend via local WiFi or Bluetooth

YOU’RE ON FIRE – ON ANDROID!
If you’re from the Old School, you’ll feel the ‘90s nostalgia while you play the hottest arcade sports game on the Android Market. Featuring the voice of Tim Kitzrow (the original NBA JAM play-by-play announcer), you’ll hear all the classic catchphrases plus a few new ones. This JAM is all about “boomshakalaka”- and beyond!
Go to the hole. Go strong. Go for the monster jam. KABOOM!

Check out more exciting games from EA like The Sims, Need for Speed Most Wanted, Theme Park, World Series of Poker, and FIFA 12!

INSTUCTIONS:
Install apk
copy data folder to SDcard/Android/data
Launch the game, first run, maybe get fc

Click Here To Download

APK File
Direct Download Link - Direct Download Link

SD Data Files
Direct Download Link - Download Link - Download Link


Ramayan Wars: The Ocean Leap v1.0.2 Apk + Data Android


Ramayan Wars: The Ocean Leap is a game based on the great Indian epic, The Ramayana. The Ramayana, written about 5th century BC, is a story about Prince Ram who is a human incarnation of the divine Lord Narayan. Ram faces his greatest challenge when his wife, Sita, is kidnapped by the evil demon King Ravana, who wants her for his own wife. Hanuman, son of the wind, has been tasked to find Sita and reassure her that Ram is on his way to rescue her. He needs to learn to fly, to leap across the Indian Ocean to Lanka, where Sita is being held and give her Ram's ring. But there are hordes of demons and demonesses that he needs to fight and defeat or kill before he can reach her.


Run Hanuman to the speed of sound and learn to fly over the Indian Ocean, using gyroscopic controls or a thumb-controlled joystick. Slide down Simhika's gullet, avoiding internal spikes, and then use his giant gada to fight his way out of Simhika's belly. Fight more than 50 demons on the island of Lanka, before bringing the demigod Lankini to her knees. Finally find Sita. Give her Ram's ring and lift her spirits with Ram's Story and a song.

The game is built with realistic 3D characters and has amazing fights and action for the players. The game teaches the player the epic tale of Ramayan as they play in a learning mode within the game. Our game imparts ancient wisdom to the players that is sung in India for thousands of years.

Key features
- Innovative use of the mobile accelerometer and Gyro.
- A Gaming experience customized for your device.
- Action and adventure game-play that teaches you the stories from Indian mythology and the spiritual meanings behind them.
- Professionally composed music.
- Amazing artwork, environments, fights and characters created to blow your mind.

Instructions:
1.Install APK
2.Copy 'com.pixelwarriors.ramayanwarstheoceanleap' folder to 'sdcard/Android/obb'
3.Launch the Game

Click Here To Download

APK File
Direct Download Link - Direct Download Link

SD Data Files
Direct Download Link - Direct Download Link


Monday, January 28, 2013

trick Set options of Google Maps Android API v2 in XML

So far we set options of Google Maps Android API v2 using java code, we can also set options in XML.

Set options of Google Maps Android API v2 in XML


Modify layout file, to add options in <fragment> of "com.google.android.gms.maps.MapFragment", also need to include xmlns:map="http://schemas.android.com/apk/res-auto".
<LinearLayout 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"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <fragment
        xmlns:map="http://schemas.android.com/apk/res-auto"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.MapFragment"
        map:cameraBearing="45"
        map:cameraTargetLat="51.507222"
        map:cameraTargetLng="-0.1275"
        map:cameraTilt="30"
        map:cameraZoom="12"
        map:mapType="satellite"
        map:uiCompass="true"
        map:uiRotateGestures="true"
        map:uiScrollGestures="true"
        map:uiTiltGestures="true"
        map:uiZoomControls="true"
        map:uiZoomGestures="true"/>

</LinearLayout>


package com.example.androidmapsv2;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.MapFragment;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {
 
 final int RQS_GooglePlayServices = 1;
 MapFragment myMapFragment;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

 }

 @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;
 }

 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
  
  switch (item.getItemId()) {
  case R.id.menu_legalnotices:
   String LicenseInfo = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(
     getApplicationContext());
   AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(MainActivity.this);
   LicenseDialog.setTitle("Legal Notices");
   LicenseDialog.setMessage(LicenseInfo);
   LicenseDialog.show();
   return true; 
  }
  return super.onOptionsItemSelected(item);
 }

 @Override
 protected void onResume() {
  super.onResume();
  
  int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
  if (resultCode == ConnectionResult.SUCCESS){
   Toast.makeText(getApplicationContext(), 
     "isGooglePlayServicesAvailable SUCCESS", 
     Toast.LENGTH_LONG).show();   
  }else{
   GooglePlayServicesUtil.getErrorDialog(resultCode, this, RQS_GooglePlayServices); 
  }
 }

}


download filesDownload the files.

The series:
A simple example using Google Maps Android API v2, step by step.

Sunday, January 27, 2013

Create MapFragment and GoogleMap using Java code

In previous exercises, MapFragment and SupportMapFragment are defined in XML of layout file. We can create it using Java code, without XML.

package com.example.androidmapsv2;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;
MapFragment myMapFragment;
private static final String TAG_MYMAPFRAGMENT = "TAG_MyMapFragment";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);

FragmentManager myFragmentManager = getFragmentManager();
myMapFragment =
(MapFragment)myFragmentManager.findFragmentByTag(TAG_MYMAPFRAGMENT);

if(myMapFragment == null){
myMapFragment = MapFragment.newInstance();
FragmentTransaction fragmentTransaction = myFragmentManager.beginTransaction();
fragmentTransaction.add(android.R.id.content, myMapFragment, TAG_MYMAPFRAGMENT);
fragmentTransaction.commit();
}

}

@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;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {
case R.id.menu_legalnotices:
String LicenseInfo = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(
getApplicationContext());
AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(MainActivity.this);
LicenseDialog.setTitle("Legal Notices");
LicenseDialog.setMessage(LicenseInfo);
LicenseDialog.show();
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
protected void onResume() {
super.onResume();

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
if (resultCode == ConnectionResult.SUCCESS){
Toast.makeText(getApplicationContext(),
"isGooglePlayServicesAvailable SUCCESS",
Toast.LENGTH_LONG).show();

if(myMap == null){
myMap = myMapFragment.getMap();
if(myMap != null){
myMap.setMyLocationEnabled(true);
myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
}else{
Toast.makeText(getApplicationContext(),
"cannot getMap!",
Toast.LENGTH_LONG).show();
}
}

}else{
GooglePlayServicesUtil.getErrorDialog(resultCode, this, RQS_GooglePlayServices);
}
}

}

Create MapFragment and GoogleMap using Java code


download filesDownload the files.

The series:
A simple example using Google Maps Android API v2, step by step.

Sacred Guns v1.1.4.2 Apk + Data Android


Defend Noah's Ark from God's unwanted creations!
When God decided to send a Great Flood to wipe sin from Earth, he assigned Noah to construct the Ark to keep him and the animals safe from harm... and YOU, the Archangel Mark Leung, to keep His unwanted creations out of the Ark.


Wield up to 5 angelic weapons and keep Noah's Ark clean from those filthy, forsaken creatures--those that are too depraved, too ugly or too sickeningly cheerful to be saved. May your guns blaze righteously. Amen!

★★★★★

Watch up to 12 full-voiced, hand-drawn cutscenes, complete with a secret ending!

Controls: Thumb 1 AIMS, Thumb 2 FIRES. Tap weapon to switch.

Upgrade yourself and your weapons between battles: Health, Power, Firing Rate, Mana Cost.

Tactical fun: Manage your mana wisely with 5 deadly weapons. Some even charge automatically for even more powerful shots!

Data Location: SDcard/Android/Obb

Click Here To Download

APK File
Direct Download Link - Direct Download Link

SD Data Files
Direct Download Link - Direct Download Link


keytool error: java.lang.Exception: Keystore file does not exist

If you have a new Android development setup on your system, and it's your first project, and you want to "display the SHA1 (or MD5) certificate fingerprint". May be you will get the error of:

keytool error: java.lang.Exception: Keystore file does not exist: /.../.android/debug.keystore

To generate the debug.keystore, you have to run any app at least one time. Just create and run any simple "Hello World" to generate it.

Saturday, January 26, 2013

Bang Bang Racing HD [non-THD] [THD] Apk Android


Pumping physics, gorgeous graphics - a true console racing experience on mobile!
Bang Bang Racing HD now available for ***ALL ANDROID DEVICES***
A home console racing experience designed and optimized for mobile devices and which utilizes NVIDIA® PhysX (tm) technology.


Bang Bang Racing THD is a fun, action-packed racing game that has cool visuals and pumped-up sports cars. But underneath its playful exterior, it has the pumping heart of a true racing game.

Real-time dynamic physics allow for finesse and control - drifting through corners and clipping every apex delivers huge player satisfaction.

The game also features a unique control system allowing you to simply point where you want the car to go, as if you are drawing a racing line for the car to follow.

Features
• A brand new IP giving you an exclusive home console experience for your mobile device.
• 4 control methods including Point, Split, Auto and Full.
• 8 stunning tracks based on world-wide locations.
• 4 Racing classes including: Muscle based “N-Dura”, Sports style “Evo GT”, ALPS based “Protech” and open wheel style “Apex”.
• 20 cars in total with each car having its own handling model and selection of skins.
• Dynamic objects including exploding water, oil and fire barrels, as well as cones and tyres.
• The game also features, single race, time trial, championship and reverse track modes.


Click Here To Download

Non-Tegra Version [v1.6]
Direct Download Link - Direct Download Link

Tegra Version [v1.4]
Download Link


NFL Quarterback 13 v1.0.2 Apk Android


BE THE QUARTERBACK! The #1 sports game returns to the field for 2013 with explosive new content in the only Official NFL QB game.
You are the Quarterback. You call the shots! Your receivers power off the line. Who are you passing to? Where’s the D? Who’s in coverage? In a split second, aim, lead your receiver and THROW!


Can you handle the pressure of being the most important player on the team?

The most precise, yet easy to use controls ever seen in a football game. Giving you ultimate power with Full Fat’s unique and award winning flick and after-touch controls, developed by the same team that brought you Flick Golf, Agent Dash and NFL Kicker.

★ Multiple Receivers
★ Tackling on Receivers and QB
★ All new uniforms and equipment
★ Realistic receiver routes
★ Weather effects
★ Upgrade your stadium
★ Compete with Facebook friends
★ Super high resolution graphics
★ All 32 official NFL teams

Click Here To Download
Direct Download Link - Direct Download Link


Thursday, January 24, 2013

Detect and animate to user location

Last exercise "Implement LocationSource and LocationListener for Google Maps Android API v2" to detect user location. We can modify onLocationChanged() method to animate to updated user location; such that the GoogleMap will always center on user location.

 @Override
public void onLocationChanged(Location location) {
if (myLocationListener != null) {
myLocationListener.onLocationChanged(location);

double lat = location.getLatitude();
double lon = location.getLongitude();

tvLocInfo.setText(
"lat: " + lat + "\n" +
"lon: " + lon);

LatLng latlng= new LatLng(location.getLatitude(), location.getLongitude());
myMap.animateCamera(CameraUpdateFactory.newLatLng(latlng));

}
}

Detect and animate to user location


The series:
A simple example using Google Maps Android API v2, step by step.

Android 4: New Features for Application Development


Recently, with the increasing popularity of mobile phones, mobile operating systems have emerged and quickly spread. Now people with smart phones can do everything that they can do with their computers. The popularity of the Android mobile operating system has increased and is widely used. In this book, new features and innovations of Android 4.0 will be discussed.

"Android 4: New Features for Application Development" is a practical and hands-on guide for developing android applications using new features of Android Ice Cream Sandwich (Android 4.0) with a step-by-step approach and clearly explained sample codes. You will learn the new APIs in Android 4.0 with sample code.

This book will cover the new features and APIs of Android 4.0 (Android Ice Cream Sandwich). It will show the usage of the new APIs with a step-by-step approach and clearly explained sample code.

You will learn about the new user interface components such as Action Bar and GridLayout. You will also learn about new APIs for social media integration and accessing calendar data. We will also look at new connectivity APIs such as Wi-Fi Direct and Android Beam. Supporting multiple screen sizes and multiple versions of Android is also among the subjects that you will learn.

You can use "Android 4: New Features for Application Development" as a reference book for developing Android applications using new features of Android 4.0 with its clearly explained, step-by-step sample codes.

Approach
This is a practical and hands-on guide with a step-by-step approach and clearly explained sample code.

Who this book is for
This book is for developers who are experienced with the Android platform, but who may not be familiar with the new features and APIs of Android 4.

Android developers who want to learn about supporting multiple screen sizes and multiple Android versions will also find this book beneficial.

Rename project after Existing Android Code Into Workspace

It's a tips in using Eclipse. After import Existing Android Code Into Workspace, the project name will be MainActivity, or the name of the main activity. In order to rename it, right click the project -> Refactor -> Rename...

Rename Eclipse project

Implement LocationSource and LocationListener for Google Maps Android API v2

Example to Implement LocationSource and LocationListener for Google Maps Android API v2.

Implement LocationSource and LocationListener for Google Maps Android API v2


package com.example.androidmapsv2;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.LocationSource;
import com.google.android.gms.maps.MapFragment;

import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.FragmentManager;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity
implements LocationSource, LocationListener{

final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;
TextView tvLocInfo;

LocationManager myLocationManager = null;
OnLocationChangedListener myLocationListener = null;
Criteria myCriteria;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvLocInfo = (TextView)findViewById(R.id.locinfo);

FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment
= (MapFragment)myFragmentManager.findFragmentById(R.id.map);
myMap = myMapFragment.getMap();

myMap.setMyLocationEnabled(true);

myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

myCriteria = new Criteria();
myCriteria.setAccuracy(Criteria.ACCURACY_FINE);
myLocationManager = (LocationManager)getSystemService(LOCATION_SERVICE);

}

@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;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_legalnotices:
String LicenseInfo = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(
getApplicationContext());
AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(MainActivity.this);
LicenseDialog.setTitle("Legal Notices");
LicenseDialog.setMessage(LicenseInfo);
LicenseDialog.show();
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
protected void onResume() {
super.onResume();

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());

if (resultCode == ConnectionResult.SUCCESS){
Toast.makeText(getApplicationContext(),
"isGooglePlayServicesAvailable SUCCESS",
Toast.LENGTH_LONG).show();

//Register for location updates using a Criteria, and a callback on the specified looper thread.
myLocationManager.requestLocationUpdates(
0L, //minTime
0.0f, //minDistance
myCriteria, //criteria
this, //listener
null); //looper

//Replaces the location source of the my-location layer.
myMap.setLocationSource(this);

}else{
GooglePlayServicesUtil.getErrorDialog(resultCode, this, RQS_GooglePlayServices);
}

}

@Override
protected void onPause() {
myMap.setLocationSource(null);
myLocationManager.removeUpdates(this);

super.onPause();
}

@Override
public void activate(OnLocationChangedListener listener) {
myLocationListener = listener;
}

@Override
public void deactivate() {
myLocationListener = null;
}

@Override
public void onLocationChanged(Location location) {
if (myLocationListener != null) {
myLocationListener.onLocationChanged(location);

double lat = location.getLatitude();
double lon = location.getLongitude();

tvLocInfo.setText(
"lat: " + lat + "\n" +
"lon: " + lon);
}
}

@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub

}

}


download filesDownload the files.

Next:
- Detect and animate to user location


The series:
A simple example using Google Maps Android API v2, step by step.

Wednesday, January 23, 2013

Devil's Attorney v1.0.3 Apk + Data Android



Devil's Attorney is a charming and fun turn-based strategy game set in the 80's.
Devil's Attorney is a turn-based strategy game set in the 80's where you play as Max McMann, a defense attorney that's high on charm but low on moral fiber.

Your objective is to free all of your clients and use the money you earn to buy accessories and new furniture for your apartment; boosting your ego and unlocking new courtroom skills in the process.


What's in this version:


• Improved HD support for high-resolution devices

• Sound and music controls improved

• Added better support for the back button

• Language corrections

• Compatibility improvements

-Install APK
-Copy 'com.senri.da' folder to 'sdcard/Android/obb'
-Launch the Game

Click Here To Download

APK File
Direct Download Link 

SD Data Files
Download Link - Download Link


Star Warfare: Alien Invasion HD v2.20.1 Apk + Data Android


HD version: Aliens return, beat them! Soldiers! Console-quality boss battles, 36 single player levels, multiplayer supported, tons of gear and unique avatars to collect!!


★★★★★
Solid single player mode
✓ Various enemies with rich AI
✓ Console-like smooth control
✓ 7 maps and 42 levels, loot can be used in solo and multiplayer modes

★★★★★
Simply the best co-op shooting game on smart phones
✓ Console-quality boss battles, team with up to 3 players(WIFI, 3G)
✓ Earn more gold in team survival mode.
✓ Armor and bags specially designed for team battle

★★★★★
Rich and flexible gear system
✓ 36 weapons, each upgradable 8 times, unlocked as you promote up the ranks.
✓ Nine Suits, each part with special attributes, a whole collection provides extra bonus. Elite suite entitles an extra special buff.
✓ Mix&match weapons with suits to earn additional damage
✓ 18 military bags with special functions


-Install APK
-Copy 'com.ifreyrgames.starwarfarehd' folder to /sdcard/Android/obb
-Launch the Game


Click Here To Download

APK File
Direct Download Link - Direct Download Link

SD Data Files
Direct Download Link - Direct Download Link


Championship Motorbikes 2013 v1.1 Apk Android


Experience the intensity, thrills and excitement of motorcycle racing with Championship Motorbikes 2013. Pit your driving skills against a number of skilled opponents in 'Championship' mode as you compete on challenging and varied circuits around the globe. Collect points during races that you can use to improve, or upgrade your motorbike. Can you handle the Crazy Ivan! If you just fancy a quick adrenaline blast choose 'Single Race' mode, where you can enjoy any of the tracks. Pull back the throttle and prove you are the ultimate speed demon on two wheels!


Key features:
• 3 difficulty levels to choose from to test your racing skills.
• Compete in a single race, or aim to win the Championship Motorbikes crown in a season long game.
• Choose from a selection of different motorbikes, which can be upgraded using points won in races.
• 10 challenging tracks around the world to enjoy.
• Use turbo boosts in races to catch up, or pull ahead of your rivals.
• Win trophies for your racing performance.
• Beautiful graphics and sounds.

Click Here To Download
Direct Download Link - Direct Download Link


MEGASTUNT Mayhem Pro v1.4.1 Apk + Data Android


MEGASTUNT™ Mayhem Pro is the perfect action sports game that mixes racing, showmanship and total destruction into one thrilling experience.
Do you have what it takes to perform unbelieveable stunts with some of the world's most extreme trucks?

These trucks are unmatched in raw power and pure awesomeness! They will electrify crowds and gain loyal fans with the right driver...are you the one?


Successful performances will generate hard earned cash which is then spent to enhance these amazing machines even further!
Are you ready for the next level of stunts?

XPERIA PLAY Optimized, Working with all devices including ( Galaxy S2 , Galaxy S, Galaxy Nexus, Motorola Droid Razr, HTC Sensation, HTC Incredible S, Optimus 2X, Xperia Arc, etc)

FEATURES
- Take your Truck to the Stadium to begin your Freestyle career!!!
- High-flying, high-speed, high-octane, Monster Truck Extravaganza!!
- Perform outrageous and over-the-top nitro-fueled stunts!
- Push the limits of your Trucks by enhancing the Performance Stats!!
- Continue your Career with Destruction and SmashPoint spectacles!!!
- Invest in DLC Trucks which will give you the edge in the Global Rankings!!
- A variety of Trucks are available with different mechanics and visuals!
- OpenFeint Achievements!!
- OpenFeint Leaderboards!!!
- OpenFeint Cinematic Event Replays!!
- XPERIA PLAY Optimized, Working with all devices including ( Galaxy S2 , Galaxy S, Galaxy Nexus, Motorola Droid Razr, HTC Sensation, HTC Incredible S, Optimus 2X, Xperia Arc, etc)


Click Here To Download

APK File
Direct Download Link - Direct Download Link

SD Data Files
Direct Download Link - Direct Download Link


Tuesday, January 22, 2013

Display another layout over GoogleMap

This example demonstrate how to place LinearLayout over GoogleMap, using XML.

Add layout over GoogleMap


<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"
android:orientation="vertical"
tools:context=".MainActivity" >


<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#A0FFFFFF" >
<TextView
android:id="@+id/locinfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />

</LinearLayout>

</RelativeLayout>


The series:
A simple example using Google Maps Android API v2, step by step.

Monday, January 21, 2013

Detect Info Window Click, implements OnInfoWindowClickListener.

To detect user click on Info Window, implements OnInfoWindowClickListener. And setOnInfoWindowClickListener() to register it.

Detect Info Window Click


Modify from the post "Create custom info contents for GoogleMaps V2, by implementing custom InfoWindowAdapter".

package com.example.androidmapsv2;

import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.GoogleMap.InfoWindowAdapter;
import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
import com.google.android.gms.maps.GoogleMap.OnMapLongClickListener;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.FragmentManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity
implements OnMapLongClickListener, OnInfoWindowClickListener{

class MyInfoWindowAdapter implements InfoWindowAdapter{

private final View myContentsView;

MyInfoWindowAdapter(){
myContentsView = getLayoutInflater().inflate(R.layout.custom_info_contents, null);
}

@Override
public View getInfoContents(Marker marker) {
TextView tvTitle = ((TextView)myContentsView.findViewById(R.id.title));
tvTitle.setText(marker.getTitle());
TextView tvSnippet = ((TextView)myContentsView.findViewById(R.id.snippet));
tvSnippet.setText(marker.getSnippet());

return myContentsView;
}

@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}

}

final int RQS_GooglePlayServices = 1;
private GoogleMap myMap;
TextView tvLocInfo;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvLocInfo = (TextView)findViewById(R.id.locinfo);

FragmentManager myFragmentManager = getFragmentManager();
MapFragment myMapFragment
= (MapFragment)myFragmentManager.findFragmentById(R.id.map);
myMap = myMapFragment.getMap();

myMap.setMyLocationEnabled(true);

myMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);

myMap.getUiSettings().setZoomControlsEnabled(true);
myMap.getUiSettings().setCompassEnabled(true);
myMap.getUiSettings().setMyLocationButtonEnabled(true);

myMap.getUiSettings().setAllGesturesEnabled(true);

myMap.setTrafficEnabled(true);

myMap.setOnMapLongClickListener(this);
myMap.setInfoWindowAdapter(new MyInfoWindowAdapter());
myMap.setOnInfoWindowClickListener(this);

}

@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;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_legalnotices:
String LicenseInfo = GooglePlayServicesUtil.getOpenSourceSoftwareLicenseInfo(
getApplicationContext());
AlertDialog.Builder LicenseDialog = new AlertDialog.Builder(MainActivity.this);
LicenseDialog.setTitle("Legal Notices");
LicenseDialog.setMessage(LicenseInfo);
LicenseDialog.show();
return true;
}
return super.onOptionsItemSelected(item);
}

@Override
protected void onResume() {
super.onResume();

int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());

if (resultCode == ConnectionResult.SUCCESS){
Toast.makeText(getApplicationContext(),
"isGooglePlayServicesAvailable SUCCESS",
Toast.LENGTH_LONG).show();
}else{
GooglePlayServicesUtil.getErrorDialog(resultCode, this, RQS_GooglePlayServices);
}
}

@Override
public void onMapLongClick(LatLng point) {
tvLocInfo.setText("New marker added@" + point.toString());

Marker newMarker = myMap.addMarker(new MarkerOptions()
.position(point)
.snippet(point.toString()));
newMarker.setTitle(newMarker.getId());

}

@Override
public void onInfoWindowClick(Marker marker) {
Toast.makeText(getBaseContext(),
"Info Window clicked@" + marker.getId(),
Toast.LENGTH_SHORT).show();

}

}


download filesDownload the files.

The series:
A simple example using Google Maps Android API v2, step by step.

FREE on Kindle: How to Make Android Apps: A Non-Code Guide to Creating Your First Android App



You Are 7 Weeks Away From Making Your First Android App

Do you want to create apps but don’t have any programming skills? Do you have a unique idea for an app but aren't sure how to get started? Do you have limited time and money?

No Programming Experience Necessary

The app industry may seem complex, but anybody can create an app regardless of technical skills. The key to creating a successful app lies mainly in the execution. With this book you’ll learn the specific strategies and proven tactics to take advantage of this opportunity.

And you won’t need to learn a single line of code.

The Secret Is Simple

Leverage Someone Else’s Time And Skills By Outsourcing Work To Experienced Programmers

Outsourcing has a bad reputation of being synonymous with low quality work—but a lot has changed since businesses started outsourcing their customer support teams to other countries.

Today, outsourcing is a great way to hire talented workers on a small budget—so you can confidently leave the programming to a certified, affordable freelancer.

Proven Tactics for Success

“How to Make Android Apps: A Non-Code Guide to Creating Your First Android App” is a practical, step-by-step blueprint developed by Brandon Nolte—the founder of DIYDROID.com, which has been featured in Digital Marketing Monthly and is responsible for the successful app “Phone Tracks”. This course enables non-programmers to take advantage of the ever-growing market for Android apps.

By following the simple seven-week process outlined in this book, you can begin accruing passive income and build your own app business online.

Thousands of Developers Are Waiting

There are tons of expert programmers jumping for the opportunity to focus their time and skills to create an app for you. And, while programming agencies can charge a lot for their services, there are several easy ways to avoid these costs without sacrificing programming quality.

This book takes a close look into the exact steps to take when hiring a programmer and how to ensure that everyone you employ is doing the highest quality work possible.

Don’t Miss This Opportunity

By following the seven-week program presented in “How to Make Android Apps: A Non-Code Guide to Creating Your First Android App,” anybody has the potential to begin earning passive income on the side. This book will let you get in the game to take advantage of this new frontier.


SMS Backup & Restore Pro v5.96 Apk Android


A simple App to Backup and Restore SMS Messages. SMS Backup & Restore is a simple Android app that backs up and restores your phone's text messages.
Schedule automatic backups or backup your messages anytime you wish.
You can view backup contents on your phone, and choose to backup selected conversations only.


Backups are created in XML format and saved to your device's SD card.
The XML can then be converted to other formats, and can also be viewed on a computer.
It's easy to e-mail your backup files anywhere you wish.

Please note that this app does not support MMS (Picture/Audio/Video) messages.

This app is ad-supported and requires the Internet permissions to display the Ads.
If you do not want ads the they can be disabled from preferences or you can buy the paid version from the Market.

On newer phones with inbuilt storage the default backup location will probably be the internal storage card and not the external.
This is because the phone reports the storage that way.
If you intend to do a factory reset on the phone, please make sure you save/email a copy of the backup outside the phone before doing it.

Click Here To Download
Direct Download Link - Direct Download Link


Flick Shoot Pro v2.9 Apk Android


Experience the most realistic free kicks with the fastest growing sports game.
Flick Shoot presents Android Users the most entertaining soccer experience with impressive graphics and a realistic physics engine.

# Two different game modes

# Improved graphics and playability


# Realistic goal keeper animations and physics engine

# Realistic kick and swerve controls

# Highscore for each game mode

# 4 different game modes: Arcade, Time Attack, +Wall Kick, +Goal Post

# There are no ads

Click to Download