我是Android SDK的新手,我正在尝试从通话记录中读取以获取使用以下代码进行的最后一次通话的信息。
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String sthh=getdur();
}
public String getdur(){
String[] projection = new String[] {
Calls.DATE
, Calls.DURATION
, Calls.NUMBER
};
ContentResolver cr = getContentResolver();
Cursor mCur = cr.query(android.provider.CallLog.Calls.CONTENT_URI, projection, null, null, Calls.DATE + " ASC");
mCur.moveToLast();
String dur = mCur.getString(mCur.getColumnCount());
mCur.close();
return dur;
}
但是,我在logcat中得到了RuntimeException和以下内容。
E / CursorWindow(21773):无法从CursorWindow中读取第472行第3列,其中包含473行,3列。
我的代码有什么问题?非常感谢你。
答案 0 :(得分:1)
解决,只需添加
Cursor mCur =null;
前
mCur = cr.query.......