با سلام از این دو نمونه کد استفاده کنید:
هردو کار میکند
function GetContact: TStringList;var
cursorContacts, cursorContactsPhone: JCursor;
hasPhoneNumber: Integer;
id: Int64;
displayName, phoneNumber, contactID: string;
begin
Result := TStringList.Create;
cursorContacts := SharedActivity.getContentResolver.query(TJContacts Contract_Contacts.JavaClass.CONTENT_URI, nil, nil, nil, nil);
if (cursorContacts.getCount > 0) then
begin
while (cursorContacts.moveToNext) do
begin
id := cursorContacts.getLong(cursorContacts.getColumnInd ex(StringToJString('_ID')));
displayName := JStringToString(cursorContacts.getString(cursorCon tacts.getColumnIndex(StringToJString('DISPLAY_NAME '))));
hasPhoneNumber := cursorContacts.getInt(cursorContacts.getColumnInde x(StringToJString('HAS_PHONE_NUMBER')));
if (hasPhoneNumber > 0) then
begin
cursorContactsPhone := SharedActivity.getContentResolver.query(TJCommonDa taKinds_Phone.JavaClass.CONTENT_URI, nil,StringToJString('CONTACT_ID = ' + IntToStr(id)),nil, nil);
while (cursorContactsPhone.moveToNext) do
begin
phoneNumber := JStringToString(cursorContactsPhone.getString(curs orContactsPhone.getColumnIndex(StringToJString('DA TA1'))));
contactID := JStringToString(cursorContactsPhone.getString(curs orContactsPhone.getColumnIndex(StringToJString('CO NTACT_ID'))));
Result.Add(displayName + ': ' + phoneNumber);
end;
cursorContactsPhone.close;
end;
end;
end;
cursorContacts.close;
end;
یا این:
function GetContact (Name: string; Number: string; const tip: integer) : TStringList;var
cursorContactsPhone: JCursor;
Typo1, Typo2: string;
FindBy: JString;
ToFind: TJavaObjectArray<JString>;
CurRec: integer;
begin
Result:=TStringList.Create;
CurRec:=0;
ToFind:= TJavaObjectArray<JString>.Create(2);
if Name <> '' then
begin
ToFind.Items[0] := StringToJString('data1');
ToFind.Items[1] := StringToJString('display_name');
FindBy := StringToJString('display_name LIKE "%' + Name + '%"');
Typo1:='data1';
Typo2:='display_name';
end
else if Number <> '' then
begin
ToFind.Items[0] := StringToJString('display_name');
ToFind.Items[1] := StringToJString('data1');
FindBy := StringToJString('data1 LIKE "%' + Number + '%"');
Typo1:='display_name';
Typo2:='data1';
end;
cursorContactsPhone := SharedActivity.getContentResolver.query(TJCommonDa taKinds_Phone.JavaClass.CONTENT_URI, ToFind, FindBy, nil, nil);
while (cursorContactsPhone.moveToNext) do
begin
Result.Add
(JStringToString(cursorContactsPhone.getString(cur sorContactsPhone.getColumnIndex(StringToJString(Ty po2)))) + ' - ' +
JStringToString(cursorContactsPhone.getString(curs orContactsPhone.getColumnIndex(StringToJString(Typ o1)))));
CurRec:=CurRec+1;
end;
cursorContactsPhone.close;
end;