2016-11-30 30 views
0

我想獲取聯繫人中最後添加的聯繫人,並獲取我想要的聯繫人的最大_id。因此,這裏是我的查詢,我想要實現:從ContentResolver從Contacts.CONTENT_URI獲取最大_id

AppMain.applicationContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, 
    new String[]{ 
      "MAX(" + ContactsContract.Contacts._ID + ") as max_id", 
      ContactsContract.Contacts.DISPLAY_NAME, 
      ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER 
    }, 
    null, null, null); 

但不幸的是我收到此錯誤: 無效的列MAX(CONTACT_ID)作爲max_id

我試圖消除「作爲max_id」,但沒有運氣。

是否有人知道如何獲得最後添加的聯繫人或獲取聯繫人的最大_id。

回答

0

這並非由Android的ContentProvider框架正式支持,特別是如果Provider設置了strictProjectionMap標誌。

但這應該工作而不是,它要求通過非接觸式ID排序的所有聯繫人,以及將結果限制爲1:

Cursor c = cr.query(Contacts.CONTENT_URI, new String[] { Contacts._ID }, null, null, Contacts._ID + "DESC LIMIT 1"); 
if (c != null && c.moveToNext()) { 
    Log.d(TAG, "id is: " + c.getLong(0)); 
}