Android实例-读取设备联系人(XE8+小米2)
2023-09-14 08:57:11 时间
相关资料:
http://www.colabug.com/thread-1071065-1-1.html
结果:
1.将权限打开Read contacts设置为True,不然报图一的错误。
2.搜索空没有问题,但搜索名字时报错了,占时没跟踪,哪位大神了解的M我,多谢了。
实例代码:
1 unit Unit1; 2 3 interface 4 5 uses 6 System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ScrollBox, 8 FMX.Memo, FMX.StdCtrls, FMX.Controls.Presentation, FMX.Edit, FMX.Layouts; 9 10 type 11 TForm1 = class(TForm) 12 Button1: TButton; 13 Label1: TLabel; 14 Memo1: TMemo; 15 Layout1: TLayout; 16 Label2: TLabel; 17 Edit1: TEdit; 18 procedure Button1Click(Sender: TObject); 19 private 20 { Private declarations } 21 public 22 { Public declarations } 23 end; 24 25 var 26 Form1: TForm1; 27 28 implementation 29 uses 30 FMX.Helpers.Android, //需要引入 31 Androidapi.JNI.JavaTypes,//需要引入 32 Androidapi.JNI.GraphicsContentViewText,//需要引入 33 FMX.Platform.Android,//需要引入 34 Androidapi.JNIBridge,//需要引入 35 Androidapi.JNI.Provider,//需要引入 36 Androidapi.Helpers;//需要引入 37 38 {$R *.fmx} 39 {$R *.NmXhdpiPh.fmx ANDROID} 40 //定义一个查询方法 41 procedure QueryContact(AName: string; AList: TStrings); 42 var 43 cursorContactsPhone: JCursor; 44 selection: string; 45 oprojection: TJavaObjectArray<JString>; 46 oselectionArgs: TJavaObjectArray<JString>; 47 FieldIndex: Integer; 48 begin 49 if AList <> nil then 50 AList.Clear; 51 oprojection := nil; 52 oselectionArgs := nil; 53 if AName.Length > 0 then 54 begin 55 oprojection := TJavaObjectArray<JString>.Create(1); 56 oselectionArgs := TJavaObjectArray<JString>.Create(1); 57 oprojection.Items[0] := TJContacts_PeopleColumns.JavaClass.DISPLAY_NAME; 58 selection := JStringToString(TJContacts_PeopleColumns.JavaClass.DISPLAY_NAME)+' LIKE “%' + AName + '%”'; 59 end; 60 //select projection from 联系人数据库 where selection 61 cursorContactsPhone := SharedActivity.getContentResolver.query 62 (TJCommonDataKinds_Phone.JavaClass.CONTENT_URI, 63 oprojection, {要查询的字段名,nil的全部} 64 StringToJString(selection),{Where条件} 65 oselectionArgs, { 这里是Where语句的条件参数们,我上面图方便,写死在Where条件中了,没使用参数 } 66 StringToJString('')); 67 68 if AList <> nil then 69 while (cursorContactsPhone.moveToNext) do 70 begin 71 //获取字段的ColumnIndex 72 FieldIndex := cursorContactsPhone.getColumnIndex 73 (TJContacts_PeopleColumns.JavaClass.DISPLAY_NAME); 74 //读字段内容 75 AList.Add(JStringToString(cursorContactsPhone.getString(FieldIndex))); 76 end; 77 cursorContactsPhone.close; 78 end; 79 80 //调用查询方法 81 procedure TForm1.Button1Click(Sender: TObject); 82 var 83 s: TStrings; 84 begin 85 s := TStringList.Create; 86 QueryContact(Edit1.Text, s); //查询姓王的人 87 Memo1.Text := s.Text; 88 s.Free; 89 end; 90 91 end.
相关文章
- Android 适配器教程 (六)
- 【Android】Android中AlertDialog对话框的使用实例
- [Android] 解析android framework下利用app_process来调用java写的命令及示例
- [Android Pro] android Flag介绍
- [Android Pro] android root权限破解分析
- Android实例-TTabControl的使用(XE8+小米2)
- 浅论Android网络请求库——android-async-http
- Android 按Menu弹出菜单
- 《android开发艺术探索》读书笔记(十)--Android的消息机制
- Android SDK版本和ADT版本
- 《android开发艺术探索》读书笔记(十)--Android的消息机制
- Android 中文API (69) —— BluetoothAdapter[蓝牙]
- Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net
- Android识别预装的第三方App方法实例
- Android debug模块
- 深入理解Android内核设计思想
- Android【报错】. lang。android.app ClassCastException。SharedPreferencesImpl不能被强制转换为android.content.Shared
- Android【报错】Failed to resolve: com.android.support:appcompat-v7:28.0.0-alpha【报错】
- Could not find com.android.tools.build:gradle:4.2.2. Searched in the following locations: - https:
- Android 11.0 蓝牙的启用和禁用
- Android 12.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果
- Android ViewPager 3D翻页效果
- 我的Android进阶之旅------>怎样解决Android 5.0中出现的警告: Service Intent must be explicit:
- 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )
- 【Android 安全】DEX 加密 ( 阶段总结 | 主应用 | 代理 Application | Java 工具 | 代码示例 ) ★
- android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
- 谈谈Android重打包--初语
- Android中实现静态的默认安装和卸载应用
- Android自己定义组件系列【7】——进阶实践(4)
- android 输入法如何启动流程_Android输入法显示流程
- android jni socket