Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
gelen arama listesini alma
#11
konu güncel...
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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 ile Play store uygulama içi satın alma işlemi crowlin 2 181 27-09-2019, Saat: 23:07
Son Yorum: crowlin
  Bir formu modal olarak açıp gelen cevabı edite yazırma hk. caoster 7 675 17-06-2019, Saat: 14:39
Son Yorum: caoster
  IOS Sim Kart Bilgilerini Alma mcuyan 19 1.406 24-12-2018, Saat: 19:23
Son Yorum: nguzeller
  PDA el terminalinde okunan barkodu alma cexx 1 447 24-12-2018, Saat: 00:22
Son Yorum: cexx
  Android'de bluetooth kullanarak termal yazicidan cikti alma arsl01 6 922 10-11-2018, Saat: 13:35
Son Yorum: arsl01



Konuyu Okuyanlar: 1 Ziyaretçi