با عرض سلام خدمت همه دوستان
چطوری میشه لیست تمامی Contact های گوشی رو به دست آورد
یه نمونه پیدا کردم ولی ارور داره و سر در نیاوردم
ممنون میشم راهنمایی بفرمائید استادهای گرامی
ضمیمه 142298
Printable View
با عرض سلام خدمت همه دوستان
چطوری میشه لیست تمامی Contact های گوشی رو به دست آورد
یه نمونه پیدا کردم ولی ارور داره و سر در نیاوردم
ممنون میشم راهنمایی بفرمائید استادهای گرامی
ضمیمه 142298
با سلام از این دو نمونه کد استفاده کنید:
هردو کار میکند
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 رو صدا بزنید.
از طریق Url یعنی به چه شکل
اگر به نمونه کد های دریافت پیام های داخل inbox مسنجر برای دلفی رو دیده باشید،همه از طریق Url ادرس دهی میشوند تا پیام ها رو دریافت کنند.
بعضی نمونه کد های ارسال اس ام اس هم،url عمل میکنند.
توی اینترنت مفصل درموردش توضیح داده.