我正在开发一个应用程序,我需要在其中获取 5 个最近拨打的号码。我可以按降序对号码进行排序,因此最近拨打的号码排在第一位。我正在使用以下代码来获取最近的数字。
dialledCall = (TextView)findViewById(R.id.dialledCall);
String strOrder = CallLog.Calls.DATE + " DESC";
Cursor mCallCursor = getApplicationContext().getContentResolver().query(CallLog.Calls.CONTENT_URI,
null,
CallLog.Calls.TYPE
,null,
strOrder);
mCallCursor.moveToFirst();
do {
if( i >5 )
break;
mobileNumber = mCallCursor.getString(mCallCursor.getColumnIndex(android.provider.CallLog.Calls.NUMBER));
number += mobileNumber + "\n";
i++;
}
while (mCallCursor.moveToNext());
dialledCall.setText(number);
有了这个,我可以按最近的顺序对数字进行排序,而且我刚刚获取了最后 5 个数字。但查询返回所有号码,我的意思是已拨、未接和已接。但在这里我只想要拨打的号码。
我知道CallLog.Calls.TYPE
上面的查询与此有关。
我尝试传递空值,但它返回所有数字。
我也尝试CallLog.Calls.OUTGOING_TYPE
过代替它,但它给出了不允许 int 值的错误,它应该是一个字符串值。
关于如何替换上述代码的任何建议,以便只获得拨打的电话。
注意-我已经查看了https://stackoverflow.com/a/10480569/1626878,但它没有提供仅获取已拨号码的解决方案。