Мое решение - создание двух приемников вещания.Первый получатель используется для получения широковещательной рассылки, отправленной системой с действием: android.intent.action.PHONE_STATE.Второй получатель вызывается первым получателем.(Первый получатель отправит трансляцию, и я обнаружил, что эта трансляция будет получена вторым получателем после того, как все получатели получат android.intent.action.PHONE_STATE.)
Подробные коды приведены ниже: Первый получатель(CallReceiver.java):
public class CallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent newintent = new Intent(intent);
newintent.setAction("");
newintent.setClass(context, SecondReceiver.class);
context.sendBroadcast(newintent);
}
}
Второй получатель (SecondReceiver.java):
public class SecondReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String number = intent.getStringExtra(
TelephonyManager.EXTRA_INCOMING_NUMBER);
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
}
}
AndroidManifest.xml:
<receiver android:name=".CallReceiver" >
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<receiver android:name=".SecondReceiver" />