Kayıt biligileri alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Hakko
Üye
Mesajlar: 1
Kayıt: 21 Ara 2013 06:37

Kayıt biligileri alma

Mesaj gönderen Hakko »

İyi akşamalar,

XE5 ile kendi chat programını başladım ancak kullanıcı bilgilerini nasıl alabileceğimi bir türlü çözemedim.
Örnek bir web siteye üye olurken üye olan kişinin ip adresini ve mail adresine databaseye kaydediyoruz, bunu telefon üzerinden nasıl yapa bilirim yeni kayıt olanın kişinin cep telefonun numarasını alıp databaseye nasıl kaydedebilirim.
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Re: Kayıt biligileri alma

Mesaj gönderen warder »

Android bilmediğim bir dünya, kullanıcı olarak ta aynı şekilde..
Bende merak ettim. Yüklenen bir uygulama ile telefon numarası alınabiliyor mu?
Güvenlik bu kadar yerlerde mi?

Edit : Yüklenen uygulama denince.. önüne gelen uygulama, her yüklenen anlamında
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Kayıt biligileri alma

Mesaj gönderen mrmarman »

Merhaba.

- Android uygulamalarında telefona yüklenirken, kullanıcıdan bazı izinler istenir.

- Kullanıcı eğer kabul ederse program sisteme kurulur. Güvenlik açığı aslında teorik olarak bu nedenle yoktur ama kullanıcılar bu izin taleplerini okumadan direkt KUR butonuna basar. Bu da pratik olarak güvenlik açığı demektir. :D

- Delphi XE5 Project / Options sayfasında Permissions kısmında hangi izinlerin isteneceği yer alır. Bu sayfayı çok iyi inceleyin, notlarınızı alın. Sonuç olarak kişinin telefon numarasına erişilebileceğini sanmıyorum (çünkü normal hayatta da kendi numaramı telefona sonradan kendim kaydetmem gerekiyor) ama siz bir SMS yollayabilir, bu SMS gönderen kişinin IMEI referansını da içerirse; o zaman sunucu bilgisayardan bu ikisini eşleştirip geri besleme ile telefon numarasını tespit edebilirsiniz. :idea:

- Telefonun IMEI nosu dahil bir sürü yere ulaşılabilirsiniz. ("Read Phone State" permissionu TRUE yaptığınızda) bkz. Embarcadero forum

// Kullanımı : :idea:

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := IMEIOku();
end;
// Fonksiyon :idea:

Kod: Tümünü seç

uses
  Androidapi.JNI.Telephony, Androidapi.JNI.Provider ,
  Androidapi.JNIBridge, Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,FMX.Helpers.Android;

//READ_PHONE_STATE permission = true

function IMEIOku():String;
var
  obj     : JObject;
  tm      : JTelephonyManager;
  strIMEI : String;
begin
  obj := SharedActivityContext.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
  if obj <> nil then
  begin
    tm := TJTelephonyManager.Wrap( (obj as ILocalObject).GetObjectID );
    if tm <> nil then
      strIMEI := JStringToString(tm.getDeviceId);
  end;
  if strIMEI = '' then
    strIMEI := JStringToString( TJSettings_Secure.JavaClass.getString( SharedActivity.getContentResolver, TJSettings_Secure.JavaClass.ANDROID_ID ) );
  Result := strIMEI;
end;
- Resim
Resim
Resim ....Resim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Kayıt biligileri alma

Mesaj gönderen pro_imaj »

XE6 yı yükledim ve xe5 te çalışan bu kodu denedim fakat çalışmıyor.

Unable to locate file 'Android.JNI.Telephony.pas' hatasını alıyorum.

XE6 da XE5 te çalışan programlar buna benzer birçok sorundan dolayı çalışmıyor deneyen var mı acaba?
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Kayıt biligileri alma

Mesaj gönderen mrmarman »

(*) XE6 kurunca ben de deneyip deneyimlerimi yazarım.

(1) XE5 program klasörlerinde aşağıdaki yerde olan bir PAS dosyası vardır.

Kod: Tümünü seç

c:\Program Files\Embarcadero\RAD Studio\12.0\source\rtl\android\Androidapi.JNI.Telephony.pas
(2) Sizdeki XE6 program klasöründe bu yazdığım klasör veya benzer bir türevi var mıdır ? kontrol edin.

(3) Başka bir klasörde de olabilir veya içindekiler başka bir UNIT'e taşınmış olabilir.

(4) Bu başlıktaki "IMEI öğrenme" örneği üzerinden konuşursak, etken CLASS olan TJTelephonyManager classının hangi UNIT içinde olduğunu da bu klasördeki PAS dosyalarında TEXT search yapabilen bir programınız varsa (ben Total Commander kullanıyorum. ALT + F7 ile search ile arama yapıyorum); onunla bu sınıf adını araştırın. Hangi UNIT içinde çıkarsa o unit'i USES satırına ekleyin. Çalışması lazım.

başarılar.
Resim
Resim ....Resim
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Kayıt biligileri alma

Mesaj gönderen greenegitim »

*101# yi arayınca mesaj kutusunda kendi numaranızı veriyor belki buradan alınabilir.
Mücadele güzelleştirir!
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Kayıt biligileri alma

Mesaj gönderen pro_imaj »

mrmarman yazdı:(*) XE6 kurunca ben de deneyip deneyimlerimi yazarım.

(1) XE5 program klasörlerinde aşağıdaki yerde olan bir PAS dosyası vardır.

Kod: Tümünü seç

c:\Program Files\Embarcadero\RAD Studio\12.0\source\rtl\android\Androidapi.JNI.Telephony.pas
(2) Sizdeki XE6 program klasöründe bu yazdığım klasör veya benzer bir türevi var mıdır ? kontrol edin.

(3) Başka bir klasörde de olabilir veya içindekiler başka bir UNIT'e taşınmış olabilir.

(4) Bu başlıktaki "IMEI öğrenme" örneği üzerinden konuşursak, etken CLASS olan TJTelephonyManager classının hangi UNIT içinde olduğunu da bu klasördeki PAS dosyalarında TEXT search yapabilen bir programınız varsa (ben Total Commander kullanıyorum. ALT + F7 ile search ile arama yapıyorum); onunla bu sınıf adını araştırın. Hangi UNIT içinde çıkarsa o unit'i USES satırına ekleyin. Çalışması lazım.

başarılar.
Merhaba Abi;
Öncelikle cevap için teşekkür ederim.
Dediğiniz programla Embarcodero klasöründe Telephony.pas arattım ve sonuç bulamadım.

Abi çok ilginç olarak projemdeki datasnap server kısmınıda xe6 da derlemek istedim ve şu hataları aldım.
[dcc32 Error] Server_Method.pas(9): E2003 Undeclared identifier: 'TDSServerModule'
[dcc32 Error] Server_Method.pas(9): E2021 Class type required
[dcc32 Fatal Error] Server_Proje.dpr(6): F2063 Could not compile used unit 'Server_Method.pas'
Tfrm_Server_Methods = class(TDSServerModule)

Normalde bahsettiğim proje xe5 te sorunsuz çalışıyor.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Kayıt biligileri alma

Mesaj gönderen mrmarman »

greenegitim yazdı:*101# yi arayınca mesaj kutusunda kendi numaranızı veriyor belki buradan alınabilir.
- Bu USSD kodunu daha önce de araştırmıştım, benim hattım Turkcell'de telefon numaramı döndürüyor. Ancak; her operatör farklı kullanabiliyormuş.
- Yabancı forumlarda bulduklarımın hepsi kontörlü hatlarda kalan bakiyeyi geri döndürüyormuş.
- Tecrübelerinizi farklı operatörler ile (Vodafone, AVEA vb.) olanlar için (özellikle kontörlü hatlar) paylaşır mısınız ...
pro_imaj yazdı: Merhaba Abi;
Öncelikle cevap için teşekkür ederim.
Dediğiniz programla Embarcodero klasöründe Telephony.pas arattım ve sonuç bulamadım.

Abi çok ilginç olarak projemdeki datasnap server kısmınıda xe6 da derlemek istedim ve şu hataları aldım.
[dcc32 Error] Server_Method.pas(9): E2003 Undeclared identifier: 'TDSServerModule'
[dcc32 Error] Server_Method.pas(9): E2021 Class type required
[dcc32 Fatal Error] Server_Proje.dpr(6): F2063 Could not compile used unit 'Server_Method.pas'
Tfrm_Server_Methods = class(TDSServerModule)

Normalde bahsettiğim proje xe5 te sorunsuz çalışıyor.
- Otelin interneti çok yavaş, bir yandan Delphi XE6 Webinarını takip ediyorum. Birazdan bitecek soru - cevap kısmında şu an. Marco cevapları veriyor. XE6'nın kalanı ise bazen hızlanıyor bazen yavaşlıyor, uzun zamandır aşağıdaki şekilde.. Şu an itibariyle hızımız...

Resim

göreceğin üzere deneme şansımı bu akşam göremiyorum :roll:
Resim
Resim ....Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Kayıt biligileri alma

Mesaj gönderen mrmarman »

- Telephony.pas dosyası yok dedin de aklıma geldi de, senin XE6 professional mi yoksa Architect mi ? Aşağıdaki sorudan yola çıkarak; DataSnap bildiğim kadarıyla Enterprise, Ultimate ve Architect sürümlerde var. Senin sürüm PROFESSIONAL ise belki her iki projendeki sorunun da bu olabilir.
pro_imaj yazdı: Merhaba Abi;
Öncelikle cevap için teşekkür ederim.
Dediğiniz programla Embarcodero klasöründe Telephony.pas arattım ve sonuç bulamadım.

Abi çok ilginç olarak projemdeki datasnap server kısmınıda xe6 da derlemek istedim ve şu hataları aldım.
[dcc32 Error] Server_Method.pas(9): E2003 Undeclared identifier: 'TDSServerModule'
[dcc32 Error] Server_Method.pas(9): E2021 Class type required
[dcc32 Fatal Error] Server_Proje.dpr(6): F2063 Could not compile used unit 'Server_Method.pas'
Tfrm_Server_Methods = class(TDSServerModule)

Normalde bahsettiğim proje xe5 te sorunsuz çalışıyor.
Resim
Resim ....Resim
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Kayıt biligileri alma

Mesaj gönderen greenegitim »

Vodafone Kontorlu hata denedim ben geriye numara döndü başka bir operatörde denemedim.
Mücadele güzelleştirir!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Kayıt biligileri alma

Mesaj gönderen mrmarman »

greenegitim yazdı:Vodafone Kontorlu hata denedim ben geriye numara döndü başka bir operatörde denemedim.
- Normal usülde DIAL olarak bu kodu telefona yazdırdığımıza göre geriye USSD olarak gelen data Android ile nasıl okunur onu öğrenmek kalıyor. :?: Çünkü bir SMS değil. Ayrıca SMS olsaydı bile intercept Delphi ile yapılamıyor. Timer ile gelen SMS'lerin tarihine göre yeni olanları sorgulayabiliyoruz.

- JAVA ile SMS geldiği an tespit edilebiliyor ama bu USSD olayı bir SMS bile değil. :?:
Resim
Resim ....Resim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Kayıt biligileri alma

Mesaj gönderen mrmarman »

Hatta kodunu da vereyim.. Dönen USSD kodunu almadan önce göndermeyi yapmak lazım değil mi :idea:

*101# ile şebeke araması yapar.
Not : # sembolü özel olduğundan WEB mantığıyla %23 olarak yazdım. Zaten göründe anlarsınız.

Kod: Tümünü seç

Uses Androidapi.JNI.GraphicsContentViewText,
     FMX.Helpers.Android;

procedure TForm1.Button1Click(Sender: TObject);
var
  Intent : JIntent ; // Androidapi.JNI.GraphicsContentViewText
  strNo : String;
begin
  strNo := 'tel:*101%23';
  Intent := TJIntent.Create ;
  Intent.setAction ( TJIntent.JavaClass.ACTION_CALL ) ;
  Intent.setData ( StrToJURI (  strNo ) ) ; // FMX.Helpers.Android
  SharedActivity.startActivity ( Intent ) ;
end;
Resim
Resim ....Resim
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Kayıt biligileri alma

Mesaj gönderen greenegitim »

symbian işletim sistemli bir telefona cool sms diye bir program kurmuştum bu programla iphone telefonlara sms gönderdiğimde numaram çıkmıyordu ve mesaj ekrana direk yansıyordu oku vs. bir tuşa basmak tuş kilidi açmak gerekmiyor (Muzip şakalarda yapılabiliyordu :D ) mesaj direk ekranda beliriyordu şimdi android için varmı diye baktım örnek ekran görüntüsü ile googleplayde var https://play.google.com/store/apps/deta ... f.FlashSMS burada nasıl gönderdiği hakkında bilgi sahibi olunursa herhalde okuma kısmında da faydası olur.
Mücadele güzelleştirir!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Kayıt biligileri alma

Mesaj gönderen mrmarman »

Bunu ben daha önce c# ile Windows Mobile için yazmıştım.

Konumuz dönen cevabın sms kutusuna düşmediği, bu nedenle de okuyamıyor olmamız.
Resim
Resim ....Resim
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Kayıt biligileri alma

Mesaj gönderen pro_imaj »

mrmarman yazdı:- Telephony.pas dosyası yok dedin de aklıma geldi de, senin XE6 professional mi yoksa Architect mi ? Aşağıdaki sorudan yola çıkarak; DataSnap bildiğim kadarıyla Enterprise, Ultimate ve Architect sürümlerde var. Senin sürüm PROFESSIONAL ise belki her iki projendeki sorunun da bu olabilir.
pro_imaj yazdı: Merhaba Abi;
Öncelikle cevap için teşekkür ederim.
Dediğiniz programla Embarcodero klasöründe Telephony.pas arattım ve sonuç bulamadım.

Abi çok ilginç olarak projemdeki datasnap server kısmınıda xe6 da derlemek istedim ve şu hataları aldım.
[dcc32 Error] Server_Method.pas(9): E2003 Undeclared identifier: 'TDSServerModule'
[dcc32 Error] Server_Method.pas(9): E2021 Class type required
[dcc32 Fatal Error] Server_Proje.dpr(6): F2063 Could not compile used unit 'Server_Method.pas'
Tfrm_Server_Methods = class(TDSServerModule)

Normalde bahsettiğim proje xe5 te sorunsuz çalışıyor.

Merhaba;
Otelde ki hız baya sıkıntılıymış abi beklemek sıkıcı olabiliyor.

Benim sürüm Architect Trial sürümü.
Ben datasnap ı xe6 altıda yeniden oluşturdum ve şu an sorunsuz çalışıyor fakat xe5 tekini derlemiyor. Datasnap konusunu yeniden oluşturarak çözmüş olduk.

IMEI NO kısmı ile ilgili bakıyorum henüz sonuca ulaşamadım.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla