Delphi Android 获取通�记录


本文整理自网络,侵删。

 
uses
  Androidapi.Helpers,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.Provider;

var
  Cursor: JCursor;
  Name: string;
begin
  Cursor := TAndroidHelper.Activity.getContentResolver.query(
    TJCallLog_Calls.JavaClass.CONTENT_URI,
    nil,
    nil,
    nil,
    nil);
  if Cursor.moveToFirst then
  begin
    while True do
    begin
      Name := JStringToString
        (Cursor.getString(Cursor.getColumnIndex(StringToJString('NAME'))));
      Memo1.Lines.Add(Name);
      if not Cursor.moveToNext then
        Exit;
    end;
  end;
end;



完善一下:
uses
  System.DateUtils,
  Androidapi.Helpers,
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.Provider;

var
  Cursor: JCursor;
  Name: string;
  UnixDate: Int64;
  Date: TDateTime;
  Selection: string;
begin
  // 2016年4月1日至2016年6月1日
  Selection := Format(
    'DATE>%d and DATE<%d',
    [DateTimeToUnix(EncodeDate(2016, 4, 1)) * 1000,
    DateTimeToUnix(EncodeDate(2016, 6, 1)) * 1000]);

  // 3用参数定义条件
  Cursor := TAndroidHelper.Activity.getContentResolver.query(
    TJCallLog_Calls.JavaClass.CONTENT_URI,
    nil,
    StringToJString(Selection),
    nil,
    nil);
  if Cursor.moveToFirst then
  begin
    while True do
    begin
      Name := JStringToString
        (Cursor.getString(Cursor.getColumnIndex(StringToJString('NAME'))));
      UnixDate := Cursor.getLong
        (Cursor.getColumnIndex(StringToJString('DATE')));
      Date := UnixToDateTime(UnixDate div 1000);
      Memo1.Lines.Add(Name + ' ' + FormatDateTime('yyyy/mm/dd hh:nn:ss', Date));

      if not Cursor.moveToNext then
        Exit;
    end;
  end;
end;

相关阅读 >>

Delphi xe6 android 实现base64字符串的解析

Delphi 加壳原理与简单实现加壳

Delphi 通过u盘方式加密

Delphi 安卓获得设备 id

Delphi 对int64计算的一种处理方式

Delphi 创建大窗口

Delphi 下载函数

Delphi memo控件对粘贴板的支持

Delphi bytetype-单双字节判断

Delphi 时间与相关类型(3): tfiletime、tsystemtime 及 dos 时间

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



打赏

取消

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

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

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

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

评论

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