Wednesday, 14 December 2011
Thursday, 10 November 2011
Tuesday, 20 September 2011
Tuesday, 13 September 2011
Sunday, 31 July 2011
Android Use Open Id in application.
Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.notdot.aeauth"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:debuggable="true">
<activity android:name=".AccountList"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AppInfo"></activity>
</application>
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
AccountList.java
package net.notdot.aeauth;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class AccountList extends ListActivity {
protected AccountManager accountManager;
protected Intent intent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
accountManager = AccountManager.get(getApplicationContext());
Account[] accounts = accountManager.getAccountsByType("com.google");
this.setListAdapter(new ArrayAdapter<Account>(this, R.layout.list_item, accounts));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Account account = (Account)getListView().getItemAtPosition(position);
Intent intent = new Intent(this, AppInfo.class);
intent.putExtra("account", account);
startActivity(intent);
}
}
AppInfo.java
package net.notdot.aeauth;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.Toast;
public class AppInfo extends Activity {
DefaultHttpClient http_client = new DefaultHttpClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.app_info);
}
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
AccountManager accountManager = AccountManager.get(getApplicationContext());
Account account = (Account)intent.getExtras().get("account");
accountManager.getAuthToken(account, "ah", false, new GetAuthTokenCallback(), null);
}
private class GetAuthTokenCallback implements AccountManagerCallback<Bundle> {
public void run(AccountManagerFuture<Bundle> result) {
Bundle bundle;
try {
bundle = result.getResult();
Intent intent = (Intent)bundle.get(AccountManager.KEY_INTENT);
if(intent != null) {
// User input required
startActivity(intent);
} else {
onGetAuthToken(bundle);
}
} catch (OperationCanceledException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AuthenticatorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
protected void onGetAuthToken(Bundle bundle) {
String auth_token = bundle.getString(AccountManager.KEY_AUTHTOKEN);
new GetCookieTask().execute(auth_token);
}
private class GetCookieTask extends AsyncTask<String, Void, Boolean> {
protected Boolean doInBackground(String... tokens) {
try {
// Don't follow redirects
http_client.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, false);
HttpGet http_get = new HttpGet("https://yourapp.appspot.com/_ah/login?continue=http://localhost/&auth=" + tokens[0]);
HttpResponse response;
response = http_client.execute(http_get);
if(response.getStatusLine().getStatusCode() != 302)
// Response should be a redirect
return false;
for(Cookie cookie : http_client.getCookieStore().getCookies()) {
if(cookie.getName().equals("ACSID"))
return true;
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
http_client.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, true);
}
return false;
}
protected void onPostExecute(Boolean result) {
new AuthenticatedRequestTask().execute("http://yourapp.appspot.com/admin/");
}
}
private class AuthenticatedRequestTask extends AsyncTask<String, Void, HttpResponse> {
@Override
protected HttpResponse doInBackground(String... urls) {
try {
HttpGet http_get = new HttpGet(urls[0]);
return http_client.execute(http_get);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
protected void onPostExecute(HttpResponse result) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(result.getEntity().getContent()));
String first_line = reader.readLine();
Toast.makeText(getApplicationContext(), first_line, Toast.LENGTH_LONG).show();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Layout Files : -
app_info.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"/>
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.notdot.aeauth"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:debuggable="true">
<activity android:name=".AccountList"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AppInfo"></activity>
</application>
<uses-permission android:name="android.permission.GET_ACCOUNTS"></uses-permission>
<uses-permission android:name="android.permission.USE_CREDENTIALS"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>
AccountList.java
package net.notdot.aeauth;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class AccountList extends ListActivity {
protected AccountManager accountManager;
protected Intent intent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
accountManager = AccountManager.get(getApplicationContext());
Account[] accounts = accountManager.getAccountsByType("com.google");
this.setListAdapter(new ArrayAdapter<Account>(this, R.layout.list_item, accounts));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Account account = (Account)getListView().getItemAtPosition(position);
Intent intent = new Intent(this, AppInfo.class);
intent.putExtra("account", account);
startActivity(intent);
}
}
AppInfo.java
package net.notdot.aeauth;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerCallback;
import android.accounts.AccountManagerFuture;
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.Toast;
public class AppInfo extends Activity {
DefaultHttpClient http_client = new DefaultHttpClient();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.app_info);
}
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
AccountManager accountManager = AccountManager.get(getApplicationContext());
Account account = (Account)intent.getExtras().get("account");
accountManager.getAuthToken(account, "ah", false, new GetAuthTokenCallback(), null);
}
private class GetAuthTokenCallback implements AccountManagerCallback<Bundle> {
public void run(AccountManagerFuture<Bundle> result) {
Bundle bundle;
try {
bundle = result.getResult();
Intent intent = (Intent)bundle.get(AccountManager.KEY_INTENT);
if(intent != null) {
// User input required
startActivity(intent);
} else {
onGetAuthToken(bundle);
}
} catch (OperationCanceledException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AuthenticatorException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
protected void onGetAuthToken(Bundle bundle) {
String auth_token = bundle.getString(AccountManager.KEY_AUTHTOKEN);
new GetCookieTask().execute(auth_token);
}
private class GetCookieTask extends AsyncTask<String, Void, Boolean> {
protected Boolean doInBackground(String... tokens) {
try {
// Don't follow redirects
http_client.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, false);
HttpGet http_get = new HttpGet("https://yourapp.appspot.com/_ah/login?continue=http://localhost/&auth=" + tokens[0]);
HttpResponse response;
response = http_client.execute(http_get);
if(response.getStatusLine().getStatusCode() != 302)
// Response should be a redirect
return false;
for(Cookie cookie : http_client.getCookieStore().getCookies()) {
if(cookie.getName().equals("ACSID"))
return true;
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
http_client.getParams().setBooleanParameter(ClientPNames.HANDLE_REDIRECTS, true);
}
return false;
}
protected void onPostExecute(Boolean result) {
new AuthenticatedRequestTask().execute("http://yourapp.appspot.com/admin/");
}
}
private class AuthenticatedRequestTask extends AsyncTask<String, Void, HttpResponse> {
@Override
protected HttpResponse doInBackground(String... urls) {
try {
HttpGet http_get = new HttpGet(urls[0]);
return http_client.execute(http_get);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
protected void onPostExecute(HttpResponse result) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(result.getEntity().getContent()));
String first_line = reader.readLine();
Toast.makeText(getApplicationContext(), first_line, Toast.LENGTH_LONG).show();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Layout Files : -
app_info.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"/>
list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
Monday, 25 July 2011
Friday, 8 July 2011
List Background not Transparent when Scrolling
If you want a
ListView with a transparent background you need to add either:android:cacheColorHint="#0000"
In the xml-declaration of it, or something like:
ListView v = getListView();
v.setCacheColorHint(0);
Saturday, 2 July 2011
How to get Phone Number in Android application..???
import android.app.Dialog;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;
public class ClsGetPhoneNumber_UI {
Dialog dialog;
String strPHNo;
StringBuffer sb;
public String getMyPhoneNumber(Context context){
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
try
{
sb=new StringBuffer(mTelephonyMgr.getLine1Number());
System.out.println("Sb"+sb.toString());
if(sb==null)
{
strPHNo= "NOPHONE";
System.out.println("strPHNo1"+strPHNo);
}
else if(sb.toString().equals(""))
{
return "NOPHONE";
}
else
{
sb.reverse().setLength(10);
String ReverseNumber=sb.toString().trim();
strPHNo= ReverseNumber;
System.out.println("strPHNo2"+strPHNo);
}
}
catch(Exception e)
{
System.out.println("strPHNo3"+strPHNo);
return "NOPHONE";
}
return strPHNo;
}
}
It will return Phone Number. If it will not able to get phone number then it will return NOPHONE.
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;
public class ClsGetPhoneNumber_UI {
Dialog dialog;
String strPHNo;
StringBuffer sb;
public String getMyPhoneNumber(Context context){
TelephonyManager mTelephonyMgr;
mTelephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
try
{
sb=new StringBuffer(mTelephonyMgr.getLine1Number());
System.out.println("Sb"+sb.toString());
if(sb==null)
{
strPHNo= "NOPHONE";
System.out.println("strPHNo1"+strPHNo);
}
else if(sb.toString().equals(""))
{
return "NOPHONE";
}
else
{
sb.reverse().setLength(10);
String ReverseNumber=sb.toString().trim();
strPHNo= ReverseNumber;
System.out.println("strPHNo2"+strPHNo);
}
}
catch(Exception e)
{
System.out.println("strPHNo3"+strPHNo);
return "NOPHONE";
}
return strPHNo;
}
}
It will return Phone Number. If it will not able to get phone number then it will return NOPHONE.
Thursday, 23 June 2011
Add Email Address from Contact Picker
1). Add permission in to the Menifest.xml
<uses-permission android:name="android.permission.READ_CONTACTS"/>
2). Pass Intent in on click method
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
3). Add method onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK)
{
switch (requestCode)
{
case CONTACT_PICKER_RESULT:
Cursor cursor = null;
String email = "";
try
{
Bundle extras = data.getExtras();
Set<String> keys = extras.keySet();
Iterator<String> iterate = keys.iterator();
while (iterate.hasNext())
{
String key = iterate.next();
Log.v(DEBUG_TAG, key + "[" + extras.get(key) + "]");
}
Uri result = data.getData();
Log.v(DEBUG_TAG, "Got a contact result: "
+ result.toString());
// get the contact id from the Uri
String id = result.getLastPathSegment();
// query for everything email
cursor = getContentResolver().query(Email.CONTENT_URI,
null, Email.CONTACT_ID + "=?", new String[] { id },
null);
int emailIdx = cursor.getColumnIndex(Email.DATA);
// let's just get the first email
if (cursor.moveToFirst()) {
/*
* Iterate all columns. :) String columns[] =
* cursor.getColumnNames(); for (String column :
* columns) { int index = cursor.getColumnIndex(column);
* Log.v(DEBUG_TAG, "Column: " + column + " == [" +
* cursor.getString(index) + "]"); }
*/
email = cursor.getString(emailIdx);
Log.v(DEBUG_TAG, "Got email: " + email);
} else {
Log.w(DEBUG_TAG, "No results");
}
}
catch (Exception e)
{
Log.e(DEBUG_TAG, "Failed to get email data", e);
}
finally
{
if (cursor != null)
{
cursor.close();
}
if (email.length() == 0) {
Toast.makeText(this, "No email found for contact.",
Toast.LENGTH_LONG).show();
}
else
{
Global.dbMain.execNonQuery("insert into EmailContacts(email) values('"+ email +"')");
System.out.println("Insert Successfully from contacts");
Intent intent = new Intent(SettingsActivity_Email.this,SettingsActivity_Email.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
break;
}
} else {
Log.w(DEBUG_TAG, "Warning: activity result not ok");
}
}
<uses-permission android:name="android.permission.READ_CONTACTS"/>
2). Pass Intent in on click method
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
3). Add method onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK)
{
switch (requestCode)
{
case CONTACT_PICKER_RESULT:
Cursor cursor = null;
String email = "";
try
{
Bundle extras = data.getExtras();
Set<String> keys = extras.keySet();
Iterator<String> iterate = keys.iterator();
while (iterate.hasNext())
{
String key = iterate.next();
Log.v(DEBUG_TAG, key + "[" + extras.get(key) + "]");
}
Uri result = data.getData();
Log.v(DEBUG_TAG, "Got a contact result: "
+ result.toString());
// get the contact id from the Uri
String id = result.getLastPathSegment();
// query for everything email
cursor = getContentResolver().query(Email.CONTENT_URI,
null, Email.CONTACT_ID + "=?", new String[] { id },
null);
int emailIdx = cursor.getColumnIndex(Email.DATA);
// let's just get the first email
if (cursor.moveToFirst()) {
/*
* Iterate all columns. :) String columns[] =
* cursor.getColumnNames(); for (String column :
* columns) { int index = cursor.getColumnIndex(column);
* Log.v(DEBUG_TAG, "Column: " + column + " == [" +
* cursor.getString(index) + "]"); }
*/
email = cursor.getString(emailIdx);
Log.v(DEBUG_TAG, "Got email: " + email);
} else {
Log.w(DEBUG_TAG, "No results");
}
}
catch (Exception e)
{
Log.e(DEBUG_TAG, "Failed to get email data", e);
}
finally
{
if (cursor != null)
{
cursor.close();
}
if (email.length() == 0) {
Toast.makeText(this, "No email found for contact.",
Toast.LENGTH_LONG).show();
}
else
{
Global.dbMain.execNonQuery("insert into EmailContacts(email) values('"+ email +"')");
System.out.println("Insert Successfully from contacts");
Intent intent = new Intent(SettingsActivity_Email.this,SettingsActivity_Email.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
break;
}
} else {
Log.w(DEBUG_TAG, "Warning: activity result not ok");
}
}
Add Contact from Contact Picker
1). Add permission in to the Menifest.xml
<uses-permission android:name="android.permission.READ_CONTACTS"/>
2). Pass Intent in on click method
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
3). Add method onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER_RESULT:
// final EditText phoneInput = (EditText) findViewById(R.id.phoneNumberInput);
Cursor cursor = null;
String phoneNumber = "";
List<String> allNumbers = new ArrayList<String>();
int phoneIdx = 0;
try {
Uri result = data.getData();
String id = result.getLastPathSegment();
cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
phoneIdx = cursor.getColumnIndex(Phone.DATA);
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() == false) {
phoneNumber = cursor.getString(phoneIdx);
allNumbers.add(phoneNumber);
cursor.moveToNext();
}
} else {
//no results actions
}
} catch (Exception e) {
//error actions
} finally {
if (cursor != null) {
cursor.close();
}
final CharSequence[] items = allNumbers.toArray(new String[allNumbers.size()]);
AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivity_SMS.this);
builder.setTitle("Choose a number");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
String selectedNumber = items[item].toString();
selectedNumber = selectedNumber.replace("-", "");
phoneInput.setText(selectedNumber);
}
});
AlertDialog alert = builder.create();
if(allNumbers.size() > 1) {
alert.show();
} else {
String selectedNumber = phoneNumber.toString();
selectedNumber = selectedNumber.replace("-", "");
phoneInput.setText(selectedNumber);
}
if (phoneNumber.length() == 0) {
//no numbers found actions
}
}
break;
}
} else {
//activity result error actions
}
}
<uses-permission android:name="android.permission.READ_CONTACTS"/>
2). Pass Intent in on click method
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
3). Add method onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER_RESULT:
// final EditText phoneInput = (EditText) findViewById(R.id.phoneNumberInput);
Cursor cursor = null;
String phoneNumber = "";
List<String> allNumbers = new ArrayList<String>();
int phoneIdx = 0;
try {
Uri result = data.getData();
String id = result.getLastPathSegment();
cursor = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=?", new String[] { id }, null);
phoneIdx = cursor.getColumnIndex(Phone.DATA);
if (cursor.moveToFirst()) {
while (cursor.isAfterLast() == false) {
phoneNumber = cursor.getString(phoneIdx);
allNumbers.add(phoneNumber);
cursor.moveToNext();
}
} else {
//no results actions
}
} catch (Exception e) {
//error actions
} finally {
if (cursor != null) {
cursor.close();
}
final CharSequence[] items = allNumbers.toArray(new String[allNumbers.size()]);
AlertDialog.Builder builder = new AlertDialog.Builder(SettingsActivity_SMS.this);
builder.setTitle("Choose a number");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
String selectedNumber = items[item].toString();
selectedNumber = selectedNumber.replace("-", "");
phoneInput.setText(selectedNumber);
}
});
AlertDialog alert = builder.create();
if(allNumbers.size() > 1) {
alert.show();
} else {
String selectedNumber = phoneNumber.toString();
selectedNumber = selectedNumber.replace("-", "");
phoneInput.setText(selectedNumber);
}
if (phoneNumber.length() == 0) {
//no numbers found actions
}
}
break;
}
} else {
//activity result error actions
}
}
Tuesday, 8 March 2011
lazy loading
//package
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Vector;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class PhotoGallerry extends Activity {
private Gallery gallery;
private ImageView imgView;
// HashMap hv;
Vector<Photos> vPhotos;
// String[] thumb_url;
// String[] big_url;
// Bitmap[] bitmap;
// Bitmap[] bitmap_big;
// int[] flag;
// Information information =new Information();
Photos photos = new Photos();
Button back;
@SuppressWarnings("unused")
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
System.out.println("On create start");
Bundle bundel = getIntent().getExtras();
vPhotos = new Vector<Photos>();
vPhotos = Photos.vPhotos;
/* if(bundel!=null) vPhotos = (Vector<Photos>)bundel.get("hash_photo");
* else System.out.println("Hash Size------------" + vPhotos.size());
*/
// photos.thumburl = new String();
// photos.bigurl = new String();
// photos.t_bitmap = new Bitmap;
// photos.b_bitmap = new Bitmap[vPhotos.size()];
// System.out.println("SSSize"+ photos.bitmap.length );
// flag = new int[vPhotos.size()];
for (int index = 0; index < vPhotos.size(); index++)
{
Photos photos = (Photos) vPhotos.elementAt(index);
/*if (photos.t_bitmap == null)
{
photos.thumburl = photos.thumburl;
photos.bigurl = photos.bigurl;
photos.t_bitmap = DownloadImage(photos.thumburl);
// bitmap_big[id] = DownloadImage(big_url[id]);
System.out.println("in class photos" + photos.t_bitmap);
}*/
setContentView(R.layout.photos);
gallery = (Gallery) findViewById(R.id.examplegallery);
gallery.setAdapter(new AddImgAdp(this));
}
Photos.vPhotos = vPhotos;
imgView = (ImageView) findViewById(R.id.ImageView01);
photos.b_bitmap = DownloadImage(photos.bigurl);
imgView.setImageBitmap(photos.b_bitmap);
back = (Button) findViewById(R.id.btnback);
back.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(PhotoGallerry.this, Testpage.class);
System.out.println("in intent");
startActivity(intent);
setResult(RESULT_OK, intent);
finish();
}
});
gallery.setOnItemClickListener(new OnItemClickListener() {
@SuppressWarnings("rawtypes")
public void onItemClick(AdapterView parent, View v, int position,
long id) {
Photos photos = (Photos) vPhotos.elementAt(position);
final ImageDownloader imageDownloader = new ImageDownloader();
int no=2;
imgView.setScaleType(ScaleType.FIT_XY);
imgView.setImageBitmap(photos.t_bitmap);
if (photos.b_bitmap == null) {
imageDownloader.download(photos, (ImageView) imgView, no);
// imgView.setScaleType(ScaleType.CENTER_INSIDE);
// photos.b_bitmap = DownloadImage(photos.bigurl);
// imgView.setImageBitmap(photos.b_bitmap);
} else {
imgView.setScaleType(ScaleType.CENTER_INSIDE);
imgView.setImageBitmap(photos.b_bitmap);
}
// imgView.setImageBitmap(photos.b_bitmap);
}
});
System.out.println("On create end");
}
private InputStream OpenHttpConnection(String urlString) throws IOException {
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");
try {
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
in = httpConn.getInputStream();
}
} catch (Exception ex) {
throw new IOException("Error connecting");
}
return in;
}
Bitmap DownloadImage(String URL) {
Bitmap bitmap = null;
InputStream in = null;
try {
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in);
in.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return bitmap;
}
public class AddImgAdp extends BaseAdapter {
int GalItemBg;
private Context cont;
private final ImageDownloader imageDownloader = new ImageDownloader();
public AddImgAdp(Context c) {
cont = c;
TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
GalItemBg = typArray.getResourceId(
R.styleable.GalleryTheme_android_galleryItemBackground, 0);
typArray.recycle();
}
public int getCount() {
return vPhotos.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
int no=1;
System.out.println("getView called");
Photos p = vPhotos.elementAt(position);
ImageView imgView = new ImageView(cont);
imgView.setLayoutParams(new Gallery.LayoutParams(100, 100));
imgView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imgView.setBackgroundResource(GalItemBg);
imageDownloader.download(p, (ImageView) imgView, no);
return imgView;
}
}
}
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Vector;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class PhotoGallerry extends Activity {
private Gallery gallery;
private ImageView imgView;
// HashMap hv;
Vector<Photos> vPhotos;
// String[] thumb_url;
// String[] big_url;
// Bitmap[] bitmap;
// Bitmap[] bitmap_big;
// int[] flag;
// Information information =new Information();
Photos photos = new Photos();
Button back;
@SuppressWarnings("unused")
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
System.out.println("On create start");
Bundle bundel = getIntent().getExtras();
vPhotos = new Vector<Photos>();
vPhotos = Photos.vPhotos;
/* if(bundel!=null) vPhotos = (Vector<Photos>)bundel.get("hash_photo");
* else System.out.println("Hash Size------------" + vPhotos.size());
*/
// photos.thumburl = new String();
// photos.bigurl = new String();
// photos.t_bitmap = new Bitmap;
// photos.b_bitmap = new Bitmap[vPhotos.size()];
// System.out.println("SSSize"+ photos.bitmap.length );
// flag = new int[vPhotos.size()];
for (int index = 0; index < vPhotos.size(); index++)
{
Photos photos = (Photos) vPhotos.elementAt(index);
/*if (photos.t_bitmap == null)
{
photos.thumburl = photos.thumburl;
photos.bigurl = photos.bigurl;
photos.t_bitmap = DownloadImage(photos.thumburl);
// bitmap_big[id] = DownloadImage(big_url[id]);
System.out.println("in class photos" + photos.t_bitmap);
}*/
setContentView(R.layout.photos);
gallery = (Gallery) findViewById(R.id.examplegallery);
gallery.setAdapter(new AddImgAdp(this));
}
Photos.vPhotos = vPhotos;
imgView = (ImageView) findViewById(R.id.ImageView01);
photos.b_bitmap = DownloadImage(photos.bigurl);
imgView.setImageBitmap(photos.b_bitmap);
back = (Button) findViewById(R.id.btnback);
back.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent = new Intent(PhotoGallerry.this, Testpage.class);
System.out.println("in intent");
startActivity(intent);
setResult(RESULT_OK, intent);
finish();
}
});
gallery.setOnItemClickListener(new OnItemClickListener() {
@SuppressWarnings("rawtypes")
public void onItemClick(AdapterView parent, View v, int position,
long id) {
Photos photos = (Photos) vPhotos.elementAt(position);
final ImageDownloader imageDownloader = new ImageDownloader();
int no=2;
imgView.setScaleType(ScaleType.FIT_XY);
imgView.setImageBitmap(photos.t_bitmap);
if (photos.b_bitmap == null) {
imageDownloader.download(photos, (ImageView) imgView, no);
// imgView.setScaleType(ScaleType.CENTER_INSIDE);
// photos.b_bitmap = DownloadImage(photos.bigurl);
// imgView.setImageBitmap(photos.b_bitmap);
} else {
imgView.setScaleType(ScaleType.CENTER_INSIDE);
imgView.setImageBitmap(photos.b_bitmap);
}
// imgView.setImageBitmap(photos.b_bitmap);
}
});
System.out.println("On create end");
}
private InputStream OpenHttpConnection(String urlString) throws IOException {
InputStream in = null;
int response = -1;
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
if (!(conn instanceof HttpURLConnection))
throw new IOException("Not an HTTP connection");
try {
HttpURLConnection httpConn = (HttpURLConnection) conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response = httpConn.getResponseCode();
if (response == HttpURLConnection.HTTP_OK) {
in = httpConn.getInputStream();
}
} catch (Exception ex) {
throw new IOException("Error connecting");
}
return in;
}
Bitmap DownloadImage(String URL) {
Bitmap bitmap = null;
InputStream in = null;
try {
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in);
in.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return bitmap;
}
public class AddImgAdp extends BaseAdapter {
int GalItemBg;
private Context cont;
private final ImageDownloader imageDownloader = new ImageDownloader();
public AddImgAdp(Context c) {
cont = c;
TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme);
GalItemBg = typArray.getResourceId(
R.styleable.GalleryTheme_android_galleryItemBackground, 0);
typArray.recycle();
}
public int getCount() {
return vPhotos.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
int no=1;
System.out.println("getView called");
Photos p = vPhotos.elementAt(position);
ImageView imgView = new ImageView(cont);
imgView.setLayoutParams(new Gallery.LayoutParams(100, 100));
imgView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imgView.setBackgroundResource(GalItemBg);
imageDownloader.download(p, (ImageView) imgView, no);
return imgView;
}
}
}
Google Map :- Give The Current Location as well as Touchable Current Location
1). Get Google Maps API Key and KeyStore File
2). Create New Project
===================================================================
3). //XML File
main.xml
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="0IHqSXChliCK94lmqnm0bdiNjkuXxL1kPsaP-gg"
/>
</LinearLayout>
===================================================================
4). //Write Code
GPSLocatorActivity .java
===================================================================
package com.VertexVerveInc.GPSLocator;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
public class GPSLocatorActivity extends MapActivity {
private MapView mapView;
private MapController mapController;
private LocationManager locationManager;
private LocationListener locationListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new GPSLocationListener();
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
0,
0,
locationListener);
mapView = (MapView) findViewById(R.id.mapView);
// enable Street view by default
mapView.setStreetView(true);
// enable to show Satellite view
// mapView.setSatellite(true);
// enable to show Traffic on map
// mapView.setTraffic(true);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
mapController.setZoom(16);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
private class GPSLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location location) {
if (location != null) {
GeoPoint point = new GeoPoint(
(int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
/* Toast.makeText(getBaseContext(),
"Latitude: " + location.getLatitude() +
" Longitude: " + location.getLongitude(),
Toast.LENGTH_SHORT).show();*/
mapController.animateTo(point);
mapController.setZoom(16);
// add marker
MapOverlay mapOverlay = new MapOverlay();
mapOverlay.setPointToDraw(point);
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
String address = ConvertPointToLocation(point);
Toast.makeText(getBaseContext(), address, Toast.LENGTH_SHORT).show();
mapView.invalidate();
}
}
public String ConvertPointToLocation(GeoPoint point) {
String address = "";
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(
point.getLatitudeE6() / 1E6,
point.getLongitudeE6() / 1E6, 1);
if (addresses.size() > 0) {
for (int index = 0; index < addresses.get(0).getMaxAddressLineIndex(); index++)
address += addresses.get(0).getAddressLine(index) + " ";
}
}
catch (IOException e) {
e.printStackTrace();
}
return address;
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
class MapOverlay extends Overlay
{
private GeoPoint pointToDraw;
public void setPointToDraw(GeoPoint point) {
pointToDraw = point;
}
public GeoPoint getPointToDraw() {
return pointToDraw;
}
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
super.draw(canvas, mapView, shadow);
// convert point to pixels
Point screenPts = new Point();
mapView.getProjection().toPixels(pointToDraw, screenPts);
// add marker
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.mapmarker);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 24, null); // 24 is the height of image
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
GPSLocationListener loc=new GPSLocationListener();
//---when user lifts his finger---
if (event.getAction() == 1) {
GeoPoint p = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
// Toast.makeText(getBaseContext(),
// p.getLatitudeE6() / 1E6 + "," +
// p.getLongitudeE6() /1E6 ,
// Toast.LENGTH_SHORT).show();
// add marker
MapOverlay mapOverlay = new MapOverlay();
mapOverlay.setPointToDraw(p);
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
String address = loc.ConvertPointToLocation(p);
Toast.makeText(getBaseContext(), address, Toast.LENGTH_SHORT).show();
}
return false;
}
}
}
2). Create New Project
===================================================================
3). //XML File
main.xml
===================================================================
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="0IHqSXChliCK94lmqnm0bdiNjkuXxL1kPsaP-gg"
/>
</LinearLayout>
===================================================================
4). //Write Code
GPSLocatorActivity .java
===================================================================
package com.VertexVerveInc.GPSLocator;
import java.io.IOException;
import java.util.List;
import java.util.Locale;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
public class GPSLocatorActivity extends MapActivity {
private MapView mapView;
private MapController mapController;
private LocationManager locationManager;
private LocationListener locationListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new GPSLocationListener();
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
0,
0,
locationListener);
mapView = (MapView) findViewById(R.id.mapView);
// enable Street view by default
mapView.setStreetView(true);
// enable to show Satellite view
// mapView.setSatellite(true);
// enable to show Traffic on map
// mapView.setTraffic(true);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
mapController.setZoom(16);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
private class GPSLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location location) {
if (location != null) {
GeoPoint point = new GeoPoint(
(int) (location.getLatitude() * 1E6),
(int) (location.getLongitude() * 1E6));
/* Toast.makeText(getBaseContext(),
"Latitude: " + location.getLatitude() +
" Longitude: " + location.getLongitude(),
Toast.LENGTH_SHORT).show();*/
mapController.animateTo(point);
mapController.setZoom(16);
// add marker
MapOverlay mapOverlay = new MapOverlay();
mapOverlay.setPointToDraw(point);
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
String address = ConvertPointToLocation(point);
Toast.makeText(getBaseContext(), address, Toast.LENGTH_SHORT).show();
mapView.invalidate();
}
}
public String ConvertPointToLocation(GeoPoint point) {
String address = "";
Geocoder geoCoder = new Geocoder(
getBaseContext(), Locale.getDefault());
try {
List<Address> addresses = geoCoder.getFromLocation(
point.getLatitudeE6() / 1E6,
point.getLongitudeE6() / 1E6, 1);
if (addresses.size() > 0) {
for (int index = 0; index < addresses.get(0).getMaxAddressLineIndex(); index++)
address += addresses.get(0).getAddressLine(index) + " ";
}
}
catch (IOException e) {
e.printStackTrace();
}
return address;
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
}
class MapOverlay extends Overlay
{
private GeoPoint pointToDraw;
public void setPointToDraw(GeoPoint point) {
pointToDraw = point;
}
public GeoPoint getPointToDraw() {
return pointToDraw;
}
@Override
public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
super.draw(canvas, mapView, shadow);
// convert point to pixels
Point screenPts = new Point();
mapView.getProjection().toPixels(pointToDraw, screenPts);
// add marker
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.mapmarker);
canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 24, null); // 24 is the height of image
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
GPSLocationListener loc=new GPSLocationListener();
//---when user lifts his finger---
if (event.getAction() == 1) {
GeoPoint p = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
// Toast.makeText(getBaseContext(),
// p.getLatitudeE6() / 1E6 + "," +
// p.getLongitudeE6() /1E6 ,
// Toast.LENGTH_SHORT).show();
// add marker
MapOverlay mapOverlay = new MapOverlay();
mapOverlay.setPointToDraw(p);
List<Overlay> listOfOverlays = mapView.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverlay);
String address = loc.ConvertPointToLocation(p);
Toast.makeText(getBaseContext(), address, Toast.LENGTH_SHORT).show();
}
return false;
}
}
}
Saturday, 19 February 2011
How to add Ads in Android Application
1). Follow this file :-
http://docs.google.com/viewer?a=v&q=cache:FJyd3VHFDU0J:www.admob.com/docs/AdMob_Android_SDK_Instructions.pdf+Android+Ads+pdf+for+Admob&hl=en&gl=in&pid=bl&srcid=ADGEESicTjiDFMv-j4637K7lLfzSxYZ0oerui19OCkJ1vwl2K2iOnOHUUz1-OzO9ZSfbJgGMArHDJCyY9QnFBXuQA64v0JAmbdSvR8THPPpRittfhiQLDwWWtiFuzZVo4mfKUgkcmtCL&sig=AHIEtbQde8Fic83ya4SgnMH1SdDYEFDRrw&pli=1
2). Must write this code in Manifest.xml
<activity android:name="com.admob.android.ads.AdMobActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|keyboard|keyboardHidden"></activity>
http://docs.google.com/viewer?a=v&q=cache:FJyd3VHFDU0J:www.admob.com/docs/AdMob_Android_SDK_Instructions.pdf+Android+Ads+pdf+for+Admob&hl=en&gl=in&pid=bl&srcid=ADGEESicTjiDFMv-j4637K7lLfzSxYZ0oerui19OCkJ1vwl2K2iOnOHUUz1-OzO9ZSfbJgGMArHDJCyY9QnFBXuQA64v0JAmbdSvR8THPPpRittfhiQLDwWWtiFuzZVo4mfKUgkcmtCL&sig=AHIEtbQde8Fic83ya4SgnMH1SdDYEFDRrw&pli=1
2). Must write this code in Manifest.xml
<activity android:name="com.admob.android.ads.AdMobActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|keyboard|keyboardHidden"></activity>
Subscribe to:
Posts (Atom)