2011-07-28 41 views
0

我想检索android应用程序中的通话记录中可用的号码。从通话记录检索电话号码android

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

我想我将不得不使用startActivityForResult为此。但是我很困惑的是这个方法的代码是什么。我只想要号码。

任何帮助将不胜感激。

问候, 桑卡

回答

0

OK的方式,首先从活动一应创建意图

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

和活动B你这样做

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

,比第一个活动,活动一个你得到你的数据是这样 的方法:

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

就是这样

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()); 
} 

你可以得到你需要的任何信息,这只是做

+0

感谢。但我正在寻找将返回Android现有通话记录活动中唯一选定号码的内容。在你的方法中,这将列出手机中可用的所有日志。 –