相关资料:

http://www.colabug.com/thread-1071065-1-1.html

结果:

1.将权限打开Read contacts设置为True,不然报图一的错误。

2.搜索空没有问题,但搜索名字时报错了,占时没跟踪,哪位大神了解的M我,多谢了。

实例代码:

 unit Unit1;

 interface

 uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ScrollBox,
FMX.Memo, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Edit, FMX.Layouts; type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Memo1: TMemo;
Layout1: TLayout;
Label2: TLabel;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation
uses
FMX.Helpers.Android, //需要引入
Androidapi.JNI.JavaTypes,//需要引入
Androidapi.JNI.GraphicsContentViewText,//需要引入
FMX.Platform.Android,//需要引入
Androidapi.JNIBridge,//需要引入
Androidapi.JNI.Provider,//需要引入
Androidapi.Helpers;//需要引入 {$R *.fmx}
{$R *.NmXhdpiPh.fmx ANDROID}
//定义一个查询方法
procedure QueryContact(AName: string; AList: TStrings);
var
cursorContactsPhone: JCursor;
selection: string;
oprojection: TJavaObjectArray<JString>;
oselectionArgs: TJavaObjectArray<JString>;
FieldIndex: Integer;
begin
if AList <> nil then
AList.Clear;
oprojection := nil;
oselectionArgs := nil;
if AName.Length > then
begin
oprojection := TJavaObjectArray<JString>.Create();
oselectionArgs := TJavaObjectArray<JString>.Create();
oprojection.Items[] := 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,
oprojection, {要查询的字段名,nil的全部}
StringToJString(selection),{Where条件}
oselectionArgs, { 这里是Where语句的条件参数们,我上面图方便,写死在Where条件中了,没使用参数 }
StringToJString('')); 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; //调用查询方法
procedure TForm1.Button1Click(Sender: TObject);
var
s: TStrings;
begin
s := TStringList.Create;
QueryContact(Edit1.Text, s); //查询姓王的人
Memo1.Text := s.Text;
s.Free;
end; end.

最新文章

  1. Java实现线性阈值模型(Linear Threshold Model)
  2. HDFS 架构解析
  3. c#遍历目录及子目录下某类11型的所有的文件
  4. [原创工具] ListView 调色盘 (Free)
  5. Linux phpwind论坛的安装
  6. EMW 性能优化二之---并发配置
  7. YUV YCbCr
  8. HDU 2509
  9. HDOJ 1266 Reverse Number(数字反向输出题)
  10. is not allowed to connect to this MySQL server
  11. 【BZOJ1877】晨跑(费用流)
  12. NoClassDefFoundError: org/apache/commons/lang3/StringUtils
  13. UML类图的简单梳理
  14. X级联动
  15. ES6相关
  16. 无需脑图 无需思维导图 看Word大纲视图
  17. mysql之select语法
  18. 测试思想&#160;QA的价值体现
  19. mapgis IGServer账号
  20. How to delete team project from TFS visual studio ?

热门文章

  1. Android开发之LocationManager和定位
  2. km算法的个人理解
  3. JAVA调用易信接口向指定好友推送消息(二)POST测试
  4. 创建TabHost的两种方式的简单分析
  5. 图表框架HelloCharts(1)线形图
  6. error LNK2019: 无法解析的外部符号 __imp___CrtDbgReportW
  7. 用ffmpeg把H264数据流解码成YUV420P
  8. 如何获取数据块结构信息dump
  9. Asp.Net Core(.net内核)
  10. AE与AO的区别