Delphi XE6 读取Android设备联系人


本文整理自网络,侵删。

 介绍

本文章介绍了Delphi XE6读取Android设备联系人,在编写代码之前,首先需要添加读取联系人的权限,然后引用需要的单元
uses
  FMX.Helpers.Android,
  Androidapi.JNI.JavaTypes, Androidapi.JNI.GraphicsContentViewText,
  FMX.Platform.Android, Androidapi.JNIBridge, Androidapi.JNI.Provider,
  Androidapi.Helpers;


编写检索联系人的函数代码
procedure QueryContact(AName: string; AList: TStrings);
var
  cursorContactsPhone: JCursor;
  selection: string;
  projection: TJavaObjectArray<JString>;
  FieldIndex: Integer;
begin
  if AList <> nil then
    AList.Clear;
  projection := nil;
  if AName.Length > 0 then
  begin
    projection := TJavaObjectArray<JString>.Create(1);
    projection.Items[0] := TJContacts_PeopleColumns.JavaClass.DISPLAY_NAME;
    selection := JStringToString(TJContacts_PeopleColumns.JavaClass.DISPLAY_NAME)+' LIKE "%' + AName + '%"';
  end;

  //select projection from 联系人数据库 where  selection
  cursorContactsPhone := SharedActivity.getContentResolver.query
    (TJCommonDataKinds_Phone.JavaClass.CONTENT_URI,
    projection {要查询的字段名,nil的全部},
    StringToJString(selection){Where条件},
    nil { 这里是Where语句的条件参数们,我上面图方便,写死在Where条件中了,没使用参数 } , nil);
  if AList <> nil then
    while (cursorContactsPhone.moveToNext) do
    begin
      //获取字段的ColumnIndex
      FieldIndex := cursorContactsPhone.getColumnIndex
        (TJContacts_PeopleColumns.JavaClass.DISPLAY_NAME);
      //读字段内容
      AList.Add(JStringToString(cursorContactsPhone.getString(FieldIndex)));
    end;
  cursorContactsPhone.close;
end;

函数的参数:1是需要查询人的名称,可以是名字中的其中一个字 2查询得到的返回结果,是姓名的列表

函数写好后,可以通过调用这个函数来读取联系人,调用的代码如下:
procedure TForm2.Button1Click(Sender: TObject);
var
  s: TStrings;
begin
  s := TStringList.Create;
  QueryContact('苏', s); //查询姓苏的人
  ShowMessage(s.Text);
  s.Free;
end;

相关阅读 >>

Delphi二进制字符串转换成中文字符串

Delphi中查找指定文件的例程

Delphi整理四(程序控制结构)

Delphi中用idhttp获取json数据乱码问题

Delphi列表控件tlistview定位到某一行

Delphi 查询当前目录下文件名是否存在

Delphi实现分割文本文件的小程序

Delphi showmodal与show的区别

Delphi tidhttp 超时的解决方案

Delphi实现双击左ctrl键调用记事本

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...