25

Androidで、着信時に、受けたい。次に、私のアプリから、通話中に音声ファイルを自動的に再生すると、相手はそれを聞くはずです。これは可能ですか?

4

4 に答える 4

14

あなたが話していることは、アンドロイドでは正確には不可能です。Android は通話中のオーディオ ストリームにアクセスできません。

私はあなたにそれを行う方法について少し考えを与えることができますが.

最初に着信コールをインターセプトするには、コールが受信されるたびに呼び出されるブロードキャスト レシーバを登録する必要があります。

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);

また、マニフェストを変更し、

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <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>

これにより、着信を傍受して通話を選択できます。これで、mp3 ファイルの再生を試すことができます。

case TelephonyManager.CALL_STATE_OFFHOOK:
                // Play mp3 file here
                break;

それが役に立てば幸い。これを試して、経験を教えてください。

于 2012-10-17T08:05:40.070 に答える
4

発信者に直接何かを再生することはできません。必要に応じてスピーカーで再生しますが、それは実際には必要ありません。だから「いいえ」、あなたはそれをすることはできません。

于 2012-10-17T08:08:37.373 に答える
3

telephonymanager を使用してみてください。探しているイベントが含まれています。

  1. http://developer.android.com/reference/android/telephony/TelephonyManager.html#ACTION_PHONE_STATE_CHANGED
于 2012-10-17T08:06:00.923 に答える
1

Android では、ライブ コールに対して再生したり、オーディオ ソースをデフォルトのマイク以外のものに切り替えたりするオプションはありません。ライブ通話中に録音を再生できない理由の詳細は次のとおりです

コツはありますが、

  1. 通話中にモバイルスピーカーからお好みの録音を再生できます!マイクはそこからそれを拾いますか?
  2. または、ハンズフリー スピーカー ワイヤをマイク ワイヤに相互接続できます。
  3. または、他のデバイスから bluetooh を使用して、目的の録音を再生します
于 2016-12-25T10:21:14.567 に答える