Reputation: 11
I want to retrieve call log and display in a list view. this is done in a second activity (not in main activity). but it's not working. when i use CommonDataKinds.Phone.CONTENT_URI instead of android.provider.CallLog.Calls.CONTENT_URI, i can retrieve contact data. i have set permission please help to resolve. i'm new to Android.
public class CallLogActivity extends Activity {
private ListView callLogListView;
private ArrayList<String> callLogStringArray = new ArrayList<String>();
private ArrayAdapter<String> callLogAdapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_call_log);
callLogStringArray.add("fdfdfd");
callLogListView = (ListView)findViewById(R.id.call_log_list);
callLogAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, callLogStringArray);
callLogListView.setAdapter(callLogAdapter);
updateCallLog();
}
private void updateCallLog (){
Cursor c = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI, null, null, null, null);
int numberColumn = c.getColumnIndex(android.provider.CallLog.Calls.NUMBER);
if(c.moveToFirst()){
do {
callLogStringArray.add(c.getString(numberColumn));
} while (c.moveToNext());
}
callLogAdapter.notifyDataSetChanged();
}
Upvotes: 1
Views: 748
Reputation: 184
First of all you define all the fields you want to get. Like follows:
String[] strFields = {
android.provider.CallLog.Calls.NUMBER,
android.provider.CallLog.Calls.TYPE,
android.provider.CallLog.Calls.CACHED_NAME,
android.provider.CallLog.Calls.CACHED_NUMBER_TYPE
};
Then you define an Order:
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
At last you get the ContentResolver
Cursor mCallCursor = getContentResolver().query(
android.provider.CallLog.Calls.CONTENT_URI,
strFields,
null,
null,
strOrder
);
Next step is to write an CursorAdapter class for your list.
Here is a great Tutorial: Link
Btw: The Call Log Content Provider can provide the following fields:
Upvotes: 2