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
  Android WiFi network ismini alma 41linea41 4 579 02-10-2023, Saat: 11:57
Son Yorum: 41linea41
  Webden veri alma Husv 3 1.088 23-12-2022, Saat: 00:59
Son Yorum: Husv
  Android Gelen Çağrı Durumunu Yakalamak emrahozten 7 2.396 07-11-2022, Saat: 23:54
Son Yorum: engerex
  Tanımsız alandan veri alma Altıner 4 829 14-10-2022, Saat: 09:09
Son Yorum: Altıner
  Divden veri alma Altıner 9 1.982 01-10-2022, Saat: 06:44
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi