Delphi Can

Orjinalini görmek için tıklayınız: Android Konum Alamama
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Kitapta ve sitede gördüğüm android konum alma örneğini  Delphi 10.3 ile oluşturdum Gerekli SDK ları ve program üzerinde verilmesi gereken izinleri verdim. 

Fakat programı Android 10 yüklü telefonumda denediğimde konum bilgisini çekmiyor. 

telefon üzerinde programın izinlerini kontrol ettiğimde konum izni kapalıydı açtım fakat yine konumu çekmiyor. 

Anladığım kadarı ile 2 sorunum var programı ilk açarken şu izinleri kullanmalısın gibi bir şey yapmam lazım. 
fakat izini manuel verdim yine çalışmadı. Kullandığım kod aşağıda. 

Kod:
Var
Sensorler : TSensorArray;
KonumSensoru : TCustomLocationSensor;
begin
Memo1.Lines.Clear;
TSensorManager.Current.Activate;
Sensorler := TSensorManager.Current.GetSensorsByCategory(TSensorCategory.Location);
KonumSensoru := Sensorler[0] as TCustomLocationSensor;
KonumSensoru.Start;
Memo1.Lines.Add('Enlem : ' +KonumSensoru.Latitude.ToString());
Memo1.Lines.Add('Boyalm : ' + KonumSensoru.Longitude.ToString());
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
i : SmallInt;
begin
TSensorManager.Current.Activate;
Memo1.Lines.Add('Toplam Sensör Sayısı: ' + TSensorManager.Current.Count.ToString);
for i := 0 to TSensorManager.Current.Count -1 do
 Begin
   Memo1.Lines.Add( (i + 1).ToString + ' - ' + TSensorManager.Current.Sensors[i].ClassName   );
 End;

end;
Şu Konuyu incelemenizi öneririm.

https://www.delphican.com/showthread.php?tid=4468
Project/Uses permission kısmından 'ACCESS_COARSE_LOCATION' iznini aktif ettikten sonra,
Formun OnShow kısmına şu kodu yazıp uygulamayı derleyiniz.

PermissionsService.RequestPermissions
    ([JStringToString(TJManifest_permission.JavaClass.ACCESS_COARSE_LOCATION)],
   procedure(const APermissions: TArray<string>;
     const AGrantResults: TArray<TPermissionStatus>)
   begin
     if (Length(AGrantResults) = 1) and
       (AGrantResults[0] = TPermissionStatus.Granted) then

     else
     begin
       Application.Terminate;
     end
   end);
mcuyan yönlendirdiği konudaki Bileşenle sorunumu aştım.
https://github.com/adrianosantostreina/M...ermissions

Lokasyonu çekebiliyorum fakat

Lokasyon bilgisini çeken butona 4 -5 defa basmam gerkiyor konumu çekmesi için bazen 2 bazen 4 - 5 bazen daha fazla bu neden olabilir.
Merhaba,
Bence bir defa tıklayın. 
GPS in toparlanması;  yer değiştirme durumunuza (veya cihazın hareketine, hareket etmiyorsanız, cihazı Yatay-dikey eksende birkaç defa sallayın) bulunduğunuz  yere (kapalı, açık mekan), mobil data'nın açık veya kapalı olmasına, hatta telefonun şebeke çekim gücüne bağlı olarak değişecektir.
@Fesih ARSLAN Hocamın dediği gibi, GPS sinyali öyle pat diye almaz.. 3-5 hatta daha da fazla zaman alabilir. Whatsapp'da konum atarken bile 5-6sn bekletiyor.
(04-04-2020, Saat: 02:54)mcuyan Adlı Kullanıcıdan Alıntı: [ -> ]@Fesih ARSLAN Hocamın dediği gibi, GPS sinyali öyle pat diye almaz.. 3-5 hatta daha da fazla zaman alabilir. Whatsapp'da konum atarken bile 5-6sn bekletiyor.

10 yıl kadar önce birkaç dakikadan fazla sürüyordu.
Aynen durum tamamen öyle Smile