# Native Code > برنامه نویسی در Delphi > برنامه نویسی موبایل در Delphi >  لیست Contact گوشی اندروید

## Delphi 2010

با عرض سلام خدمت همه دوستان
چطوری میشه لیست تمامی Contact های گوشی رو به دست آورد

یه نمونه پیدا کردم ولی ارور داره و سر در نیاوردم
ممنون میشم راهنمایی بفرمائید استادهای گرامی
AndroidContactsManagerDemo.zip

----------


## ابوالفضل عباسی

با سلام از این دو نمونه کد استفاده کنید:
هردو کار میکند
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;

----------


## ابوالفضل عباسی

ببخشید
این هم از سایت embarcadero گرفتم.از روش کامپوننت استفاده کرده.

docwiki.embarcadero.com

در ضمن با استفاده از URL هم میتونید contact رو صدا بزنید.

----------


## Delphi 2010

از طریق Url یعنی به چه شکل

----------


## ابوالفضل عباسی

اگر به نمونه کد های دریافت پیام های داخل inbox مسنجر برای دلفی رو دیده باشید،همه از طریق Url ادرس دهی میشوند تا پیام ها رو دریافت کنند.
بعضی نمونه کد های ارسال اس ام اس هم،url عمل میکنند.
توی اینترنت مفصل درموردش توضیح داده.

----------

