by David Moldenhauer » Mon Feb 07, 2011 12:17 pm
how to make a call in Android 2.2 :
package com.daviesmeyer.android.makeacall;
import android.app.ListActivity;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.provider.ContactsContract.Contacts;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.util.Log;
public class MakeACall extends ListActivity {
private SimpleCursorAdapter mAdapter;
private static final String TAG = "MyMessage";
public String[] contactID;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Cursor c = getContacts();
startManagingCursor(c);
String[] columns = new String[]{Contacts.DISPLAY_NAME};
int[] names = new int[]{android.R.id.text1};
//Log.v(TAG, theNumber[0]);
mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, c, columns, names);
setListAdapter(mAdapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Intent i = new Intent(Intent.ACTION_CALL);
ContentResolver cr = getContentResolver();
Cursor c = (Cursor) mAdapter.getItem(position);
//long phoneId = c.getLong(c.getColumnIndex(ContactsContract.Contacts._ID));
String myID = (String)c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
Cursor pCur = managedQuery(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
new String[]{myID}, null);
pCur.moveToFirst();
Log.v(TAG, pCur.getString(pCur.getColumnIndex(Phone.NUMBER)));
i.setData(Uri.parse("tel:"+pCur.getString(pCur.getColumnIndex(Phone.NUMBER))));
startActivity(i);
pCur.close();
}
private Cursor getContacts() {
// Run query
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] { ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME };
contactID = new String[]{ContactsContract.Contacts._ID};
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '"
+ ("1") + "'";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC";
return managedQuery(uri, projection, selection, selectionArgs,
sortOrder);
}
}