6

電話が鳴っているときに発信者の名前を話したいです。彼の名前で発信者の着信番号を取得する方法を知っています

String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);

        Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(incomingNumber)); 
        Cursor cursor = context.getContentResolver().query(uri, new String [] {PhoneLookup.DISPLAY_NAME}, null, null, null);

        if (cursor.moveToFirst()) {
            callerName = cursor.getString(0);
        }

        Log.d(TAG, "Display name: " + callerName);

android.intent.action.PHONE_STATE電話が鳴り始めたら、それを聞いてキャッチする方法を知っています。

発信者名を話す方法も知っていますが、呼び出しTextToSpeech.OnInitListener音を止めて発信者名を再生してから再び呼び出し音を鳴らす方法に問題があります。

発信者名が再生されなくなるまで呼び出し音を止めるには? 検索していますが、解決策が見つかりません。

4

1 に答える 1

0

残念ながら無理です。Android リファレンスはこれをカバーしていませんが、私はしばらくテストしていましたが、呼び出しのごく初期の段階 (音が聞こえる前) でのみ呼び出し音の音量を制御できました。音が鳴った後に行ったすべての変更は、通話が終了した直後に有効になります (つまり、次の通話で)。他のストリームの動作はわかりませんが、これだけに興味がありました (ただし、STREAM_RING をミュートできないため、これは問題ではないと思います)。

于 2013-10-28T15:19:22.757 に答える