Delphi android görüşme

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Delphi android görüşme

Mesaj gönderen fesiharslan »

AliZairov yazdı:
Tamam bi deniyip geri dönüş yaparım. Bana böyle bir program gerekli aradım bulamadım o yüzden merak konusu benim için yani böyle bir uygulama mümkün diğilmi.
Ali Bey;
Yukarıda bahsetmiş olduğum konuyu biraz daha detaylandırarak size yardımcı olmaya çalışayım.

Tüm platformlar (Android, iOS vb.) için görüşme durumu IFMXPhoneDialerService interface'i ile de yakalanabilir.
Bunun için;
1- IFMXPhoneDialerService tipinin cihaz tarafından desteklenip desteklemediği kontrol edilerek, bir değişkene atayın.
2- Daha sonra aynı interface'te yer alan OnCallStateChanged olayına oluşturduğunuz bir metodu atayın.

Örnek bir metod(procedure)

Kod: Tümünü seç

procedure TForm1.SetArsOnCallStateChanged(const ACallID: String; const ACallState: TCallState);
 Begin
  case ACallState of
         TCallState.None: ;//çağrı yok
         TCallState.Connected:; //çağrı alındı
         TCallState.Incoming:; //çağrı var
         TCallState.Dialing: ; //aranıyor
         TCallState.Disconnected:; //çağrı sonlandı
     end;
 End;
Yukarıdaki procedure'de yer alan çağrı durumlarında istediğiniz işlemi yapabilirsiniz.
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Delphi android görüşme

Mesaj gönderen AliZairov »

fesiharslan yazdı: Ali Bey;
Yukarıda bahsetmiş olduğum konuyu biraz daha detaylandırarak size yardımcı olmaya çalışayım.

Tüm platformlar (Android, iOS vb.) için görüşme durumu IFMXPhoneDialerService interface'i ile de yakalanabilir.
Bunun için;
1- IFMXPhoneDialerService tipinin cihaz tarafından desteklenip desteklemediği kontrol edilerek, bir değişkene atayın.
2- Daha sonra aynı interface'te yer alan OnCallStateChanged olayına oluşturduğunuz bir metodu atayın.

Örnek bir metod(procedure)

Kod: Tümünü seç

procedure TForm1.SetArsOnCallStateChanged(const ACallID: String; const ACallState: TCallState);
 Begin
  case ACallState of
         TCallState.None: ;//çağrı yok
         TCallState.Connected:; //çağrı alındı
         TCallState.Incoming:; //çağrı var
         TCallState.Dialing: ; //aranıyor
         TCallState.Disconnected:; //çağrı sonlandı
     end;
 End;
Yukarıdaki procedure'de yer alan çağrı durumlarında istediğiniz işlemi yapabilirsiniz.
Tekrar merhaba. Teşekkür ederim. Ben BroadcastReceiver kullanarak arama zamanı gelen numarayı aldım. Test için yani çalışıyormu diye. Bu verdiğiniz örnekde daha iyi ios destekli. Hemen onuda test edeceğim.

Sayenizde

1) Ses kaydı
2) Gelen çağrıyı yakalama

çözüldü. Mediaplayer örnek bir mp3 ses dosyası koyarım konuşma esnasında bakalım dosyayı çalma şansı varmı. Birde bu çağrı belirli bir saniye sonra oto yes etmesi gerek o nasıl olucak bi araştırayım onuda.
Paranoyaq
Üye
Mesajlar: 22
Kayıt: 05 Oca 2016 02:55

Re: Delphi android görüşme

Mesaj gönderen Paranoyaq »

fesiharslan yazdı:
Paranoyaq yazdı:
O seçenek işaretli hocam
Uyarı mesajı, Try-except kod kısmında hataya düşmesi durumunda veriliyor.
Try-except kod kısmını kapatın. Daha sonra uygulamayı yeniden çalıştırın. Bu durumda asıl hata uyarısını alırsınız. Hata uyarısını paylaşırsanız, yardımcı olmaya çalışayım.
zannedersem bu ;
java.lang.IllegalStateException
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Delphi android görüşme

Mesaj gönderen AliZairov »

Malesef Fesih abi hata oluşdu. Her halde benim cihaz desteklemiyor.

Kod: Tümünü seç

uses
  FMX.PhoneDialer;

var
  Dial: TPhoneDialerService;

procedure TMain.SetArsOnCallStateChanged(const ACallID: String;
  const ACallState: TCallState);
begin
  case ACallState of
    TCallState.None: ShowMessage('Call None');
    TCallState.Connected: ShowMessage('Call Connected');
    TCallState.Incoming: ShowMessage('Call Incoming');
    TCallState.Dialing: ShowMessage('Call Dialing');
    TCallState.Disconnected: ShowMessage('Call Disconnected');
  end;
end;

procedure TMain.Button1Click(Sender: TObject);
begin
  Dial := TPhoneDialerService.Create;
  Dial.OnCallStateChanged := SetArsOnCallStateChanged;
end;
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Delphi android görüşme

Mesaj gönderen fesiharslan »

AliZairov yazdı:Malesef Fesih abi hata oluşdu. Her halde benim cihaz desteklemiyor.

Kod: Tümünü seç

uses
  FMX.PhoneDialer;

var
  Dial: TPhoneDialerService;

procedure TMain.SetArsOnCallStateChanged(const ACallID: String;
  const ACallState: TCallState);
begin
  case ACallState of
    TCallState.None: ShowMessage('Call None');
    TCallState.Connected: ShowMessage('Call Connected');
    TCallState.Incoming: ShowMessage('Call Incoming');
    TCallState.Dialing: ShowMessage('Call Dialing');
    TCallState.Disconnected: ShowMessage('Call Disconnected');
  end;
end;

procedure TMain.Button1Click(Sender: TObject);
begin
  Dial := TPhoneDialerService.Create;
  Dial.OnCallStateChanged := SetArsOnCallStateChanged;
end;
Öncelikle genel IFMXPhoneDialerService tipide bir tanımlama yapın.

Kod: Tümünü seç

 private: 
   TelefonServisi: IFMXPhoneDialerService;
Daha sonra formun OnCreate olayına aşağıdaki kodları yazın.

Kod: Tümünü seç

TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(TelefonServisi));
if Assigned(TelefonServisi) then
TelefonServisi.OnCallStateChanged:=SetArsOnCallStateChanged elde ShowMessage('Telefon servis desteği yok');
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Delphi android görüşme

Mesaj gönderen fesiharslan »

Paranoyaq yazdı:
fesiharslan yazdı:
Paranoyaq yazdı:
O seçenek işaretli hocam
Uyarı mesajı, Try-except kod kısmında hataya düşmesi durumunda veriliyor.
Try-except kod kısmını kapatın. Daha sonra uygulamayı yeniden çalıştırın. Bu durumda asıl hata uyarısını alırsınız. Hata uyarısını paylaşırsanız, yardımcı olmaya çalışayım.
zannedersem bu ;
java.lang.IllegalStateException
Doğrudan java sınıfından gelen genel bir hata. Kaynağını tespit etmek zor.
Önerilerim;
1- Farkı bir telefonda deneyin. Böylece sizin telefondan kaynaklı olup olmadığı anlaşılabilir.
2- Yeni bir proje oluşturarak, işlem adımlarını, kod yapısını ve izin durumunu yeniden gözden geçirdin.
Paranoyaq
Üye
Mesajlar: 22
Kayıt: 05 Oca 2016 02:55

Re: Delphi android görüşme

Mesaj gönderen Paranoyaq »

fesiharslan yazdı:
Paranoyaq yazdı:
fesiharslan yazdı:
Uyarı mesajı, Try-except kod kısmında hataya düşmesi durumunda veriliyor.
Try-except kod kısmını kapatın. Daha sonra uygulamayı yeniden çalıştırın. Bu durumda asıl hata uyarısını alırsınız. Hata uyarısını paylaşırsanız, yardımcı olmaya çalışayım.
zannedersem bu ;
java.lang.IllegalStateException
Doğrudan java sınıfından gelen genel bir hata. Kaynağını tespit etmek zor.
Önerilerim;
1- Farkı bir telefonda deneyin. Böylece sizin telefondan kaynaklı olup olmadığı anlaşılabilir.
2- Yeni bir proje oluşturarak, işlem adımlarını, kod yapısını ve izin durumunu yeniden gözden geçirdin.
Try except olayını kapatmadan ;
java.lang.IllegalStateException

Kapatınca ;

java.io.filenotfoundexception. : /storage/emulated/0/documents/gorusme.mp3: open failed : ENOENT (no such file or directory )



Dediğiniz adımları mı deneyelim başka önerileriniz de varmı hocam
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Delphi android görüşme

Mesaj gönderen AliZairov »

fesiharslan yazdı:
Öncelikle genel IFMXPhoneDialerService tipide bir tanımlama yapın.

Kod: Tümünü seç

 private: 
   TelefonServisi: IFMXPhoneDialerService;
Daha sonra formun OnCreate olayına aşağıdaki kodları yazın.

Kod: Tümünü seç

TPlatformServices.Current.SupportsPlatformService(IFMXPhoneDialerService, IInterface(TelefonServisi));
if Assigned(TelefonServisi) then
TelefonServisi.OnCallStateChanged:=SetArsOnCallStateChanged elde ShowMessage('Telefon servis desteği yok');
Evet benim her iki cihaz bu servisi desteklemiyor. O zaman BroadcastReceiver yapmağa çalışırım. Tekrar teşekkürler.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Delphi android görüşme

Mesaj gönderen fesiharslan »

Paranoyaq yazdı:
Try except olayını kapatmadan ;
java.lang.IllegalStateException

Kapatınca ;

java.io.filenotfoundexception. : /storage/emulated/0/documents/gorusme.mp3: open failed : ENOENT (no such file or directory )



Dediğiniz adımları mı deneyelim başka önerileriniz de varmı hocam
Belirtilen path'e ulaşamıyor.
Filename kısmında GetSharedPicturesPath kullanın. (Konum olarak /storage/emulated/0/Pictures 'e kaydeder)
Paranoyaq
Üye
Mesajlar: 22
Kayıt: 05 Oca 2016 02:55

Re: Delphi android görüşme

Mesaj gönderen Paranoyaq »

fesiharslan yazdı:
Paranoyaq yazdı:
Try except olayını kapatmadan ;
java.lang.IllegalStateException

Kapatınca ;

java.io.filenotfoundexception. : /storage/emulated/0/documents/gorusme.mp3: open failed : ENOENT (no such file or directory )



Dediğiniz adımları mı deneyelim başka önerileriniz de varmı hocam
Belirtilen path'e ulaşamıyor.
Filename kısmında GetSharedPicturesPath kullanın. (Konum olarak /storage/emulated/0/Pictures 'e kaydeder)
Aynen hocam program çalıştı Teşekkürler
Paranoyaq
Üye
Mesajlar: 22
Kayıt: 05 Oca 2016 02:55

Re: Delphi android görüşme

Mesaj gönderen Paranoyaq »

fesiharslan yazdı:..[/b] olması gerekiyor.

Hocam kayıtlarımızı bi listbox da nasıl listeyebiliriz , oradan tıklayıp oynatma işlemi?
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Delphi android görüşme

Mesaj gönderen fesiharslan »

Paranoyaq yazdı: Hocam kayıtlarımızı bi listbox da nasıl listeyebiliriz , oradan tıklayıp oynatma işlemi?
Belirtilen bir path'te yer alan dosya tiplerini alarak dinamik bir şekilde ListBox'a alabilirsiniz. Listbox'un OnItemClick olayında da arka planda dosya yolunu alarak çalıştırabilirsiniz.
Özetleyecek olursak;
Öncelikle belirtilen bir konumda dosya arama, daha sonra bulduğunuz dosyayı da listbox'a bir item olarak eklemeniz gerekiyor.
Paranoyaq
Üye
Mesajlar: 22
Kayıt: 05 Oca 2016 02:55

Re: Delphi android görüşme

Mesaj gönderen Paranoyaq »

fesiharslan yazdı:
Paranoyaq yazdı: Hocam kayıtlarımızı bi listbox da nasıl listeyebiliriz , oradan tıklayıp oynatma işlemi?
Belirtilen bir path'te yer alan dosya tiplerini alarak dinamik bir şekilde ListBox'a alabilirsiniz. Listbox'un OnItemClick olayında da arka planda dosya yolunu alarak çalıştırabilirsiniz.
Özetleyecek olursak;
Öncelikle belirtilen bir konumda dosya arama, daha sonra bulduğunuz dosyayı da listbox'a bir item olarak eklemeniz gerekiyor.
bu tarz birşey yaptım hocam calısmıyor galiba

procedure ListFileDir (Path : string ; FileList : TStrings);
var
SR:TSearchREC;
begin
if FindFirst (Path + '*.*' , faAnyFile , SR ) = 0 then
begin
repeat
if (SR.Attr <> faDirectory ) then
begin
FileList.Add(SR.Name);

end;

until FindNext (SR) <> 0;
FindClose(SR)
end;
end;
--------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
listfiledir('\TPath.GetSharedPicturesPath\', Listbox1.Items);
end;
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Delphi android görüşme

Mesaj gönderen fesiharslan »

Haftasonu pek vaktim olmuyor.
Önümüzdeki hafta içerisinde bir örnek yapıp buradan yayınlarım.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Delphi android görüşme

Mesaj gönderen fesiharslan »

Merhaba;
Tüm Platformlar için (Android, iOS, Win ve Mac OS X) Müzik Player uygulamasının linkini formun paket programlar bölümünde paylaştım.
viewtopic.php?f=12&t=35733&p=192629#p192629
Hayırlı olması dileğiyle..
Cevapla