0
我想知道如果來電顯示在通訊錄中。因此,代碼我使用的爲:如何檢查特定的CallerID是否在聯繫人列表中?
ContentResolver resolver = this.service.getContentResolver();
String number = PhoneLookup.NUMBER;
String[] projections = { number };
String selectionClause = number + " = ?";
String[] selectionClauseArgs = { callerId };
Cursor people = resolver.query(
ContactsContract.Contacts.CONTENT_URI, projections,
selectionClause, selectionClauseArgs, null);
return people.getCount() > 0 ? true : false;
我給過濾功能的ContentResolver
本身,而不是獲取的一切,遍歷它們並檢查一個接一個。
但我收到以下錯誤的東西的原因(有許多代碼,但他們工作得很好,因爲他們只是訂閱電話事件,以接收來電顯示時,有一個人是打電話!「)
08-28 19:20:05.903: E/AndroidRuntime(737): java.lang.IllegalArgumentException: Invalid column number
我沒有什麼是無效的,我用正確的列名這是PhoneLookup.NUMBER
常數A類似的問題在這裏問過:。How to read contacts on Android 2.0我跟着
我相信'people'是一個'Cursor'對象,但是它的參數被填充? – Tarik
而且我還記得這個代碼的地方。如果你把源頁面的鏈接放到了代碼的其餘部分,那會更好。 – Tarik
'人們'用空值查詢,意味着它與全部領域的每一次接觸。代碼來自github,但我失去了鏈接,對不起:) –