PDA

View Full Version : لیست Contact گوشی اندروید



Delphi 2010
پنج شنبه 11 شهریور 1395, 12:38 عصر
با عرض سلام خدمت همه دوستان
چطوری میشه لیست تمامی Contact های گوشی رو به دست آورد

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

ابوالفضل عباسی
پنج شنبه 18 شهریور 1395, 09:51 صبح
با سلام از این دو نمونه کد استفاده کنید:
هردو کار میکند

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;

ابوالفضل عباسی
پنج شنبه 18 شهریور 1395, 09:54 صبح
ببخشید
این هم از سایت embarcadero گرفتم.از روش کامپوننت استفاده کرده.

docwiki.embarcadero.com (http://docwiki.embarcadero.com/RADStudio/Berlin/en/Mobile_Tutorial:_Using_an_Address_Book_Component_( iOS_and_Android))

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

Delphi 2010
یک شنبه 21 شهریور 1395, 08:30 صبح
از طریق Url یعنی به چه شکل

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