Ziel ist es, eine Klasse namens CallReceiver
zu haben, die BroadcastReceiver
implementiert Die Klasse wartet auf einen Anruf, wenn ein Anruf vorliegt, gibt sie die Anrufernummer an die Aktivität zurück, die die Instanz erstellt hat .android - gibt Daten zur Änderung in einer Klasseninstanz zurück
Beispiel:
MainActivity:
CallReciver callreciver = new CallReciver(getApplicationContext());
CallReciver.java
public class CallReceiver extends BroadcastReceiver {
private Context mContext;
CallReceiver(Context context) {
this.mContext = context;
}
@Override
public void onReceive(Context context, Intent intent) {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
Intent i = new Intent(mContext, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("callMsg", incomingNumber);
mContext.startActivity(i);
}
}
ich versuchte, eine Absicht mit der Nummer zu senden, wenn ein Ruf erfaßt worden ist, aber das Problem ist, dass Die Absicht startet die Aktivität und initialisiert die Variablen, ich brauche nur die Nummer.
requered Ergebnis: CallReceiver sendet die Nummer MainActivity
können Sie den Code teilen? –
mehr Code bitte :) – Distjubo
Das wird nicht funktionieren. Lesen Sie [this] (http://developer.android.com/about/versions/android-3.1.html) für weitere Informationen. – Distjubo