In Android, al momento di una chiamata in arrivo, desidero riceverlo. Quindi, dalla mia app, riproduce automaticamente un file audio durante una chiamata e l'altra parte deve ascoltarlo. È possibile?Android: risposta automatica chiamata in entrata, riproduzione di un file audio
risposta
Quello di cui stai parlando non è esattamente possibile con Android. Android non ha accesso al flusso audio in chiamata.
Anche se posso darti una piccola idea su come farlo.
prima di intercettare chiamate in arrivo, è necessario registrare un ricevitore di broadcast, che viene richiamato ogni volta chiamata viene ricevuta
public void onReceive(final Context context, Intent intent)
{
TelephonyManager telephonyManager = null;
PhoneStateListener listener = new PhoneStateListener()
{
public void onCallStateChanged(int state, String incomingNumber)
{
switch (state)
{
case TelephonyManager.CALL_STATE_IDLE:
Toast.makeText(context, "Call Ended..", Toast.LENGTH_LONG).show();
Log.i("stop", "Call Ended....");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Toast.makeText(context, "Call Picked..", Toast.LENGTH_LONG) .show();
Log.i("received", "Call Picked....");
break;
case TelephonyManager.CALL_STATE_RINGING:
Toast.makeText(context, "Call Ringing.." + incomingNumber,5000).show();
break;
}
}
};
// Register the listener with the telephony manager
telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
cambiare anche la vostra manifesta,
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<receiver android:name="MyReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
</application>
Con questo, si può intercettare la chiamata in arrivo e scegliere la chiamata, ora è possibile provare a riprodurre alcuni file mp3 nel
case TelephonyManager.CALL_STATE_OFFHOOK:
// Play mp3 file here
break;
Spero che aiuti. Deve provare questo e dimmi l'esperienza.
Provare a utilizzare telephonymanager, contiene gli eventi che stai cercando:
Non si può suonare qualsiasi cosa al chiamante direttamente. Se vuoi giocare con l'altoparlante, ma non è quello che vuoi. Quindi "no", non puoi farlo.
In Android non è possibile giocare contro una chiamata dal vivo o cambiare la sorgente audio in qualcosa di diverso dal microfono predefinito! qui ci sono dettagli che why you can't play recordings during a live call
Tuttavia ci sono alcuni trucchi,
- È possibile riprodurre la registrazione desiderata altoparlante mobile, durante una chiamata! un microfono lo prenderà da lì?
- Oppure si può collegare a fili handfree altoparlante al filo Mic
- Oppure utilizzare Bluetooh da un altro dispositivo per riprodurre la registrazione desiderata
OK sicuro cercherò di farvi sapere. –
hai avuto fortuna con questo? – CasualT
@CasualT Cosa vuoi? –