Да Сначала добавьте эти разрешения в свой манифест:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Вы должны использовать Broadcast Receiver с этими фильтрами намерений.
android.intent.action.NEW_OUTGOING_CALL
android.intent.action.NEW_INCOMING_CALL
Вы можете использовать сервис для этого регистра. Примерно так:
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
registerReceiver(receiver,new IntentFilter("android.intent.action.NEW_OUTGOING_CALL"));
registerReceiver(receiver2,new IntentFilter("android.intent.action.NEW_INCOMING_CALL"));
return START_STICKY;
}
И наш приемник Broadcast вы можете использовать это:
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//
RequestQueue
String savedNumber="";
String savedNumber2= intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
if (intent.getAction().equals("android.intent.action.NEW_OUTGOING_CALL")) {
savedNumber = intent.getExtras().getString("android.intent.extra.PHONE_NUMBER");
}
Log.e("Saved number","Numara: "+savedNumber);
Log.e("İt is ","İt is it");
Log.e("Saved number 2 ",savedNumber2);
}
}
И, наконец, в вашем файле манифеста вы можете использовать намеренный фильтр в вашем приемнике, например:
<receiver
android:name=".CallReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>