Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Android Rehbere Kayıt Ekleme
#1
Merhabalar,

Daha önce Androide kayıt ekleyen kodum şimdi çalışmıyor. Neden Olabilir?

procedure TAnaF.FormCreate(Sender: TObject);
begin

{$IFDEF ANDROID}
 //iiznler

 okuma_izni:=JStringToString(TJManifest_permission.JavaClass.READ_CONTACTS);
 yazma_izni:=JStringToString(TJManifest_permission.JavaClass.WRITE_CONTACTS);
 GetAccount_izni:=JStringToString(TJManifest_permission.JavaClass.GET_ACCOUNTS);
 Arama_izni:=JStringToString(TJManifest_permission.JavaClass.CALL_PHONE);



PermissionsService.RequestPermissions([okuma_izni,yazma_izni,GetAccount_izni,Arama_izni],
         procedure(
                     const APermissions: TClassicStringDynArray;
                     const AGrantResults: TClassicPermissionStatusDynArray)
                     begin
                            if (Length(AGrantResults)=4) and
                               (AGrantResults[0] = TPermissionStatus.Granted) and
                               (AGrantResults[1] = TPermissionStatus.Granted) and
                               (AGrantResults[2] = TPermissionStatus.Granted) and
                               (AGrantResults[3] = TPermissionStatus.Granted) then
                            begin
                                //izni alınca yapılacak işlemler
                            end
                            ELSE //Eğer izin onaylanmamışsa
                               TDialogService.ShowMessage('İzin vermediniz');
                     end);

  {$ENDIF}
end;


procedure TAnaF.RehbereKayitEkle(FirstName,LastName,Telefon:string);
var
 Contact: TAddressBookContact;
 Phones: TContactPhones;
begin

 Contact := d.AddressBook1.CreateContact(d.AddressBook1.DefaultSource);
 try
  // Add a mobile phone number
   Phones := TContactPhones.Create;
   try
     Phones.AddPhone(TContactPhone.TLabelKind.Mobile, Telefon);
     Contact.FirstName:='Nakkom - '+FirstName;
     Contact.LastName:=LastName;

     Contact.Phones := Phones;
   finally
     Phones.Free;
   end;
 // Save the newly created contact
 d.AddressBook1.SaveContact(Contact);

 finally
   Contact.Free;
 end;

end;
Cevapla
#2
Merhabalar,

Rehbere Kayıt Ekle Procedurunda Hata olduğu için kaydetmiyormuş.

Contact ve Phones değişkenlerini yok ekmek için Free kullanmışım onun DisposeOf olması gerekiyor.
Cevapla
#3
(03-04-2024, Saat: 15:05)barissagir Adlı Kullanıcıdan Alıntı: Merhabalar,

Rehbere Kayıt Ekle Procedurunda Hata olduğu için kaydetmiyormuş.

Contact ve Phones değişkenlerini yok ekmek için Free kullanmışım onun DisposeOf olması gerekiyor.

Delphi 11 ve daha üst sürüme geçtiğinizde, DisposeOf kullanmayın. Bu sürüm ve sonraki sürümler için DisposeOf kullanımdan kaldırılmıştır.
Kaynak: System.TObject.DisposeOf
Begin : = end / 2;
Cevapla
#4
Free mi kullanmamız gerekiyor?
Cevapla
#5
(03-04-2024, Saat: 17:28)barissagir Adlı Kullanıcıdan Alıntı: Free mi kullanmamız gerekiyor?

Evet
Begin : = end / 2;
Cevapla
#6
Peki yukardaki kodda neden free hata veriyor. Baska bi islemmi yapmam gerekiyor
Cevapla
#7
(03-04-2024, Saat: 18:32)barissagir Adlı Kullanıcıdan Alıntı: Peki yukardaki kodda neden free hata veriyor. Baska bi islemmi yapmam gerekiyor

Phones.Free; satırından kaynaklanıyor.
Bu satır ve ona bağlı try-finally kapatın.
Contact.Free; yaptığınızda, Phones sınıfı da free olacaktır.
Begin : = end / 2;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Android’de Dosya Depolama ve Paylaşma-2: And 11 SDK 30 Scoped Storage SAF MediaStore emozgun 12 4.893 19-03-2024, Saat: 22:29
Son Yorum: nguzeller
  Android 33 api sdk güncelleme [ÇÖZÜLDÜ] codder71 4 431 19-02-2024, Saat: 22:38
Son Yorum: codder71
  Mobil Android Emulator Altıner 5 385 22-01-2024, Saat: 18:28
Son Yorum: Altıner
  Firebird Android bağlantı aeyeci 2 287 01-01-2024, Saat: 14:41
Son Yorum: nguzeller
  FMX Android Barkod Scanner - [ÇÖZÜLDÜ] Mesut 21 2.323 20-12-2023, Saat: 21:46
Son Yorum: Jakarta2



Konuyu Okuyanlar: 1 Ziyaretçi