2016-09-19 54 views
0

我想查詢CallLog數據庫並根據指定的日期返回一些調用。例如,我希望能夠從特定日期即9月1日到現在獲取數據。給定日期的Android查詢CallLog

我通過調用查詢數據庫:

 Date d = new Date(); 


    String strOrder = android.provider.CallLog.Calls.DATE + " > " + d.toString(); 
    /* Query the CallLog Content Provider */ 
/*Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null, 
      null, null, strOrder);*/ 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED) { 
     // TODO: Consider calling 
     Log.d(TAG, "Did not have permissions."); 
     return; 
    } 
    Cursor managedCursor = this.getContentResolver().query(CallLog.Calls.CONTENT_URI, null, 
      null, null, strOrder); 

這給了我一個錯誤,不launchs活動。

回答

0

既然你沒有指定你收到我只能給你,做我的工作代碼示例錯誤:

String query = "(" + CallLog.Calls.DATE + " >= " + from + 
      " AND " + CallLog.Calls.DATE + " <= " + to + ")"; 

Cursor callsCursor = context.getContentResolver().query(
           CallLog.Calls.CONTENT_URI, 
           null, 
           query, 
           null, 
           null, 
           CallLog.Calls.DATE + " DESC"); 


if (callsCursor != null) { 
    while (callsCursor.moveToNext()) { 
     String number = callsCursor.getString(callsCursor.getColumnIndex(CallLog.Calls.NUMBER)); 
     int type = callsCursor.getInt(callsCursor.getColumnIndex(CallLog.Calls.TYPE)); 
     long date = callsCursor.getLong(callsCursor.getColumnIndex(CallLog.Calls.DATE)); 
     int duration = callsCursor.getInt(callsCursor.getColumnIndex(CallLog.Calls.DURATION)); 

     // the rest of your code goes here 
    } 
} 

希望它有助於