Estoy tratando de implementar mi propia interfaz de usuario de manejo de llamadas telefónicas.¿Cómo aceptar una llamada entrante haciendo clic en un botón?
Lo que quiero hacer es, si entra una llamada, se muestran el número de teléfono entrante y una imagen, y, si presiono un botón, la llamada entrante será aceptada/contestada.
El código relacionado es:
@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);
}
});
Lamentablemente, el código no funciona. En un primer momento, se produce una excepción si presiono el botón de mi respuesta:
ActivityNotFoundException: no hemos encontrado actividad de manejar Intención {
act = android.intent.action.ANSWER
Luego añade una entrada en AndroidManifest.xml:
<uses-permission android:name="android.permission.CALL_PHONE" />
Ejecuto la aplicación de nuevo, ya no hay ninguna excepción. Sin embargo, dudo que la llamada entrante no sea realmente aceptada. Porque si presiona el botón de respuesta de la pantalla de Android (botón verde), se acepta la llamada entrante y aparece un icono de llamada verde en la esquina superior izquierda de la pantalla del emulador, mientras que mi aplicación no.
También leo el código fuente de la aplicación del teléfono en la fuente de Android. Hay un método como acceptCall() en la clase de teléfono. Pero estos códigos parecen difíciles para mí utilizar, porque hay muchos declaración de importación en el código, tales como:
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;
Y, si añado estas importaciones en mi código, habrá demasiados errores, tales como :
The import com.android.internal.telephony cannot be resolved
.
¿Cuál es la manera correcta y simple para mi problema?
ver el enlace: [http://mylifewithandroid.blogspot.com/2008/01/phonecalls.html](http://mylifewithandroid.blogspot. com/2008/01/llamadas telefónicas.html) –