Android API 22’de Arayan Numarayı Alma
Android API 22’de, arayan numarayı almak için kullanabileceğiniz birkaç farklı yol vardır. Bu yollardan biri, TelephonyManager
sınıfını kullanmaktır. TelephonyManager
sınıfı, cihazın telefon özelliklerine erişmenizi sağlayan bir sınıftır. Bu sınıfı kullanarak, arayan numarayı, cihazın şebeke operatörünü ve cihazın sinyal gücünü gibi bilgileri alabilirsiniz.
TelephonyManager
sınıfını kullanarak arayan numarayı almak için şu adımları izleyebilirsiniz:
TelephonyManager
sınıfının bir örneğini oluşturun.TelephonyManager
sınıfınıngetLine1Number()
metodunu kullanarak arayan numarayı alın.
Aşağıdaki kod örneği, TelephonyManager
sınıfını kullanarak arayan numarayı nasıl alabileceğinizi göstermektedir:
java
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = telephonyManager.getLine1Number();
TelephonyManager
sınıfını kullanarak arayan numarayı alabilmek için, android.permission.READ_PHONE_STATE
iznine sahip olmanız gerekir. Bu izni, AndroidManifest.xml
dosyasına aşağıdaki satırı ekleyerek verebilirsiniz:
xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
TelephonyManager
sınıfını kullanarak arayan numarayı almak, arayan numarayı almak için kullanabileceğiniz en kolay yollardan biridir. Ancak, bu yöntem yalnızca cihazın şebeke operatörü tarafından sağlanan numaraları alabilir. Eğer arayan numarası bir VoIP numarasıysa, bu yöntemi kullanarak arayan numarayı alamazsınız.
Arayan numarayı almak için kullanabileceğiniz bir diğer yol ise, TelephonyManager
sınıfının listen()
metodunu kullanmaktır. listen()
metodu, cihazın telefon durumunda meydana gelen değişiklikleri dinlemenizi sağlar. Bu değişiklikler arasında, bir aramanın başlaması veya bitmesi de yer almaktadır.
TelephonyManager
sınıfının listen()
metodunu kullanarak arayan numarayı almak için şu adımları izleyebilirsiniz:
TelephonyManager
sınıfının bir örneğini oluşturun.TelephonyManager
sınıfınınlisten()
metodunu kullanarak, cihazın telefon durumunda meydana gelen değişiklikleri dinleyin.- Bir aramanın başladığını tespit ettiğinizde,
TelephonyManager
sınıfınıngetLine1Number()
metodunu kullanarak arayan numarayı alın.
Aşağıdaki kod örneği, TelephonyManager
sınıfının listen()
metodunu kullanarak arayan numarayı nasıl alabileceğinizi göstermektedir:
java
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
telephonyManager.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String phoneNumber) {
if (state == TelephonyManager.CALL_STATE_RINGING) {
String phoneNumber = telephonyManager.getLine1Number();
}
}
}, PhoneStateListener.LISTEN_CALL_STATE);
TelephonyManager
sınıfının listen()
metodunu kullanarak arayan numarayı alabilmek için, android.permission.READ_PHONE_STATE
iznine sahip olmanız gerekir. Bu izni, AndroidManifest.xml
dosyasına aşağıdaki satırı ekleyerek verebilirsiniz:
xml
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
TelephonyManager
sınıfının listen()
metodunu kullanarak arayan numarayı almak, arayan numarayı almak için kullanabileceğiniz en güvenilir yollardan biridir. Bu yöntem, cihazın şebeke operatörü tarafından sağlanan numaraları ve VoIP numaralarını da alabilir.
Faydalı Siteler ve İlgili Dosyalar
- Android Developers: TelephonyManager
- Android Developers: PhoneStateListener
- Android Developers: READ_PHONE_STATE Permission