Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
gelen arama listesini alma
#11
konu güncel...
Cevapla
#12
Cevaplar da güncel  Angry

Yukarıda verilen linklere baktınız mı  Huh  

Delphi için örnek kod istemişsiniz ama verilen linke örnek kod var  Exclamation

Kodları deneyip de sorun yaşadı iseniz onu belirtin, ona göre ilerleyelim  Dodgy
There's no place like 127.0.0.1
WWW
Cevapla
#13
@SimaWB sağolsun durumu güzel özetledi.

- DelphiCanlar için  başlığı okuyacak / meraklı diğer kullanıcılar için kendi arşivimden bir kod içerisinden sadeleştirerek kod örneği hazırladım. Göreceksiniz ki verdiğim StackOverflow linkindeki kodlar ile çok benzer.

- Neden hazır kod veriyorum, çünkü Android erişim kodlarının çok fazla esnekliği yok. Yani özel zeka isteyen (strateji üretmek manasında) bir çaba gerekmiyor.

Uses  Androidapi.JNI.Net, Androidapi.JNI.GraphicsContentViewText,
      Androidapi.Helpers,
     Androidapi.JNI.Provider, FMX.Helpers.Android;

// READ_CALL_LOG  için Permission : TRUE olmalı
function AramaKayitlari( iSonCagriSay: Integer = 99999 ):string;
Type tIcerikIndexleri = Record
 CACHED_FORMATTED_NUMBER,
 CACHED_LOOKUP_URI,
 CACHED_MATCHED_NUMBER,
 CACHED_NAME,
 CACHED_NORMALIZED_NUMBER,
 CACHED_NUMBER_LABEL,
 CACHED_NUMBER_TYPE,
 CACHED_PHOTO_ID,
 CONTENT_ITEM_TYPE,
 CONTENT_TYPE,
 COUNTRY_ISO,
 DATA_USAGE, DATE,
 DEFAULT_SORT_ORDER,
 DURATION,
 EXTRA_CALL_TYPE_FILTER,
 FEATURES,
 IS_READ,
 LIMIT_PARAM_KEY,
 NEW, NUMBER,
 NUMBER_PRESENTATION,
 OFFSET_PARAM_KEY,
 PHONE_ACCOUNT_COMPONENT_NAME,
 PHONE_ACCOUNT_ID,
 TRANSCRIPTION,
 VOICEMAIL_URI,
 TYPEX                           : integer;
end;
pIcerikIndexleri = ^tIcerikIndexleri;

var
 Cursor              : Androidapi.JNI.GraphicsContentViewText.JCursor;
 Uri                 : Androidapi.JNI.Net.Jnet_Uri;
 BaslangicIdx        : pIcerikIndexleri;
 strNo, strType, strName, strDuration : String;
begin
 Uri    := Androidapi.Helpers.StrToJURI('content://call_log/calls');
 Cursor := Androidapi.Helpers.SharedActivity.getContentResolver.query(uri, nil, nil, nil, nil);

 // Milat olarak belirlenen
 New(BaslangicIdx);

   BaslangicIdx.CACHED_FORMATTED_NUMBER      := cursor.getColumnIndex(StringToJstring('CACHED_FORMATTED_NUMBER'));
   BaslangicIdx.CACHED_LOOKUP_URI            := cursor.getColumnIndex(StringToJstring('CACHED_LOOKUP_URI'));
   BaslangicIdx.CACHED_MATCHED_NUMBER        := cursor.getColumnIndex(StringToJstring('CACHED_MATCHED_NUMBER'));
   BaslangicIdx.CACHED_NAME                  := cursor.getColumnIndex(StringToJstring('CACHED_NAME'));
   BaslangicIdx.CACHED_NORMALIZED_NUMBER     := cursor.getColumnIndex(StringToJstring('CACHED_NORMALIZED_NUMBER'));
   BaslangicIdx.CACHED_NUMBER_LABEL          := cursor.getColumnIndex(StringToJstring('CACHED_NUMBER_LABEL'));
   BaslangicIdx.CACHED_NUMBER_TYPE           := cursor.getColumnIndex(StringToJstring('CACHED_NUMBER_TYPE'));
   BaslangicIdx.CACHED_PHOTO_ID              := cursor.getColumnIndex(StringToJstring('CACHED_PHOTO_ID'));
   BaslangicIdx.CONTENT_ITEM_TYPE            := cursor.getColumnIndex(StringToJstring('CONTENT_ITEM_TYPE'));
   BaslangicIdx.CONTENT_TYPE                 := cursor.getColumnIndex(StringToJstring('CONTENT_TYPE'));
   BaslangicIdx.COUNTRY_ISO                  := cursor.getColumnIndex(StringToJstring('COUNTRY_ISO'));
   BaslangicIdx.DATA_USAGE                   := cursor.getColumnIndex(StringToJstring('DATA_USAGE'));
   BaslangicIdx.DATE                         := cursor.getColumnIndex(StringToJstring('DATE'));
   BaslangicIdx.DEFAULT_SORT_ORDER           := cursor.getColumnIndex(StringToJstring('DEFAULT_SORT_ORDER'));
   BaslangicIdx.DURATION                     := cursor.getColumnIndex(StringToJstring('DURATION'));
   BaslangicIdx.EXTRA_CALL_TYPE_FILTER       := cursor.getColumnIndex(StringToJstring('EXTRA_CALL_TYPE_FILTER'));
   BaslangicIdx.FEATURES                     := cursor.getColumnIndex(StringToJstring('FEATURES'));
   BaslangicIdx.IS_READ                      := cursor.getColumnIndex(StringToJstring('IS_READ'));
   BaslangicIdx.LIMIT_PARAM_KEY              := cursor.getColumnIndex(StringToJstring('LIMIT_PARAM_KEY'));
   BaslangicIdx.NEW                          := cursor.getColumnIndex(StringToJstring('NEW'));
   BaslangicIdx.NUMBER                       := cursor.getColumnIndex(StringToJstring('NUMBER'));
   BaslangicIdx.NUMBER_PRESENTATION          := cursor.getColumnIndex(StringToJstring('NUMBER_PRESENTATION'));
   BaslangicIdx.OFFSET_PARAM_KEY             := cursor.getColumnIndex(StringToJstring('OFFSET_PARAM_KEY'));
   BaslangicIdx.PHONE_ACCOUNT_COMPONENT_NAME := cursor.getColumnIndex(StringToJstring('PHONE_ACCOUNT_COMPONENT_NAME'));
   BaslangicIdx.PHONE_ACCOUNT_ID             := cursor.getColumnIndex(StringToJstring('PHONE_ACCOUNT_ID'));
   BaslangicIdx.NUMBER_PRESENTATION          := cursor.getColumnIndex(StringToJstring('NUMBER_PRESENTATION'));
   BaslangicIdx.TRANSCRIPTION                := cursor.getColumnIndex(StringToJstring('TRANSCRIPTION'));
   BaslangicIdx.TYPEX                        := cursor.getColumnIndex(StringToJstring('TYPE'));

 while ( cursor.moveToNext ) and ( iSonCagriSay > 0 ) do
 begin
   strNo       := Trim( JStringToString(cursor.getString(BaslangicIdx.NUMBER)) );
   strType     := Trim( JStringToString(cursor.getString(BaslangicIdx.TYPEX) ) );

   strName     := '';
   if BaslangicIdx.CACHED_NAME <> -1
     then strName     := Trim( JStringToString(cursor.getString(BaslangicIdx.CACHED_NAME)) );

   strDuration := '';
   if BaslangicIdx.DURATION    <> -1
     then strDuration := Trim( JStringToString(cursor.getString(BaslangicIdx.DURATION)) );

   case StrToInt(strType) of
   1 : strType := 'GELEN  No';
   2 : strType := 'ARANAN No';
   3 : strType := 'CEVAPSIZ ';
   5 : strType := 'RED Edil.';
   end;
   Result := Result + #13#10 + Format('%s:%s %s (Süre:%s sn.)', [ strType, strName, strNo, strDuration]);

   Dec(iSonCagriSay);
 end;
 Dispose(BaslangicIdx);
end;

Kullanımı : ( Sayı vermezseniz tüm çağrılar gelir )
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.Add( AramaKayitlari( 5 ) ); // Rakam vermezseniz otomatik 99999 olacağından tüm kayıtlar gelir...
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi FMX, geliştirdiğiniz uygulamanın log kaydını alma işlemi muratcelik64 3 599 22-03-2026, Saat: 05:00
Son Yorum: ovural
  Delphi FMX ile geliştirilen projenin yedeğini alma işlemi. muratcelik64 1 364 15-03-2026, Saat: 20:43
Son Yorum: mkysoft
  Telefondan Arama yapmak barissagir 4 1.125 26-06-2025, Saat: 02:26
Son Yorum: barissagir
  Android Kontakt, Telefon numaralarını alma.. ARM 1 778 09-03-2025, Saat: 07:00
Son Yorum: ARM
  Lokasyon Alma barissagir 2 1.103 14-08-2024, Saat: 14:59
Son Yorum: barissagir



Konuyu Okuyanlar: 2 Ziyaretçi