Sto cercando di implementare la mia interfaccia telefonica per gestire l'interfaccia utente.Come accettare una chiamata in arrivo facendo clic su un pulsante?
Quello che voglio fare è, se arriva una chiamata, il numero di telefono in arrivo e una foto vengono visualizzati, e, se premo un pulsante, la chiamata in arrivo sarà accettata/risposta.
Il codice relativo è:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
answerButton = (Button) findViewById(R.id.pickup);
answerButton.setOnClickListener(new OnClickListener() {
public void onClick(final View v) {
Intent intent = new Intent("android.intent.action.ANSWER");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});
Purtroppo, il codice non funziona. In un primo momento, viene generata un'eccezione se premo il mio pulsante di risposta:
ActivityNotFoundException: trovate attività per gestire Intent {
atto = android.intent.action.ANSWER
Poi ho aggiunto un voce in AndroidManifest.xml:
<uses-permission android:name="android.permission.CALL_PHONE" />
Eseguo nuovamente l'app, non ci sono più eccezioni. Tuttavia, dubito che la chiamata in arrivo non sia realmente accettata. Perché se si preme il pulsante di risposta dello schermo di Android (pulsante verde), la chiamata in entrata viene accettata e un'icona di chiamata in verde viene visualizzata anche nell'angolo in alto a sinistra dello schermo dell'emulatore, mentre la mia app no.
Ho letto anche il codice sorgente dell'app Telefono in Android. C'è un metodo come acceptCall() nella classe Phone. Ma questi codici sembrano difficili per me da usare, perché ci sono molti dichiarazione importazioni nel codice, come ad esempio:
import com.android.internal.telephony.Call;
import com.android.internal.telephony.CallStateException;
import com.android.internal.telephony.CallerInfo;
import com.android.internal.telephony.CallerInfoAsyncQuery;
import com.android.internal.telephony.Connection;
import com.android.internal.telephony.MmiCode;
import com.android.internal.telephony.Phone;
E, se posso aggiungere queste importazioni nel mio codice, non ci saranno troppi errori, come ad esempio :
The import com.android.internal.telephony cannot be resolved
.
Qual è il modo giusto e semplice per il mio problema?
consultare il link: [http://mylifewithandroid.blogspot.com/2008/01/phonecalls.html](http://mylifewithandroid.blogspot. COM/2008/01/telefonate.html) –