Как получить номер текущего звонка - PullRequest
2 голосов
/ 28 февраля 2012

Я запускаю «Активность» с помощью «startActivity (callintent)» и жду некоторое время. Затем мне нужно остановить вызов с помощью onReceive (). В этом методе onReceive (), как я могу получить существующий телефонный номер текущего вызова?

@Override
public void onReceive(Context context, Intent intent) {
    String oldnumber = intent.getStringExtra(intent.ACTION_NEW_OUTGOING_CALL);
    String newphnumber="9999999999";
    if ((newphnumber1=null) &&(newphnumber!=oldnumber)) {
        String msg = "Intercepted outgoing call. Old :" + oldnumber + 
                     ", new :" + newPhNnumber;
        Toast.makeText(getApplicationContext(), "end call", Toast.LENGTH_SHORT).
            show();
        setResultData(newphnumber);
    }
}

Здесь oldnumber означает уже активированный исходящий номер (идет один звонок). Как я могу получить это?

1 Ответ

3 голосов
/ 28 февраля 2012

Мы можем легко получить номер текущего вызова, используя BroadcastReceiver. В функции onReceive класса BroadcastReceiver вы должны написать код, подобный следующему:

if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
            String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER).toString();
            Log.w("", "Number---->"+number);
             Toast.makeText(context, "Intent Received", Toast.LENGTH_LONG).show();
}

и в вашем классе деятельности

MReciever mReceiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);  
        mReceiver = new MReciever();
        IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);
        registerReceiver(mReceiver, filter);
    }

    protected void onDestroy() {
        unregisterReceiver(mReceiver);
    };

И в файле манифеста Android вы должны объявить получателя как

<receiver android:name=".YourReceiverClass" android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
    </intent-filter>
    </receiver>

Я думаю, это поможет вам.

...