从通话记录android中检索电话号码

时间:2011-07-28 08:24:16

标签: android

我想检索android应用程序中调用日志中可用的号码。

我不想获取所有通话记录并填充我的应用活动。相反,我想使用现有的Android Intent来查看,一旦从列表中选择了数字,我希望我的活动中的数字。

我想我必须使用 startActivityForResult 。但我感到困惑的是这个方法中的代码是什么。我只想要这个号码。

任何帮助将不胜感激。

此致 香卡

2 个答案:

答案 0 :(得分:0)

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
};
String strOrder = android.provider.CallLog.Calls.DATE + " DESC"; 

Cursor mCallCursor = getContentResolver().query(
    android.provider.CallLog.Calls.CONTENT_URI,
    strFields,
    null,
    null,
    strOrder
    );

if(mCallCursor.moveToFirst()){
    // loop through cursor 
    do{
        int ind=mCallCursor.getColumnIndex(android.provider.CallLog.Calls.NUMBER);
        int ind1=mCallCursor.getColumnIndex(android.provider.CallLog.Calls.CACHED_NAME);
        Log.v("asd", "NUmber:"+mCallCursor.getString(ind)+"  Name:"+mCallCursor.getString(ind1));
    } while (mCallCursor.moveToNext());
}

您可以获得所需的任何信息,这只是这样做的方式

答案 1 :(得分:0)

好的,首先来自活动A你应该创建意图

Intent i=new Intent(...);
startActivityForResult(i,0)

并在活动B上执行此操作

Intent i1=getIntent();
//here you put data
i.putExtra("key","value");

并且在第一个活动中,活动A可以获得这样的数据 在方法中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);
    String dataINeeded=data.getExtra("key");
}

就是这样