0

Android バージョン 2.3 以降では、TelephonyManager を使用して着信/不在着信/発信を検出できないと聞きました。これは本当ですか?はいの場合、通話を処理するための回避策はありますか? 提案してください。私はそれを緊急に必要としています。

4

1 に答える 1

0

この投稿を確認してください。それは役立ちます

あなたはそれを照会することができます。

TelephonyManagerを使用するためのコードを見つけてください。私は2.3.3で試し、私のために働いています:

public class MainActivity extends Activity {

private TelephonyManager telephonyManager;
private PhoneStateListener listener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // Get the telephony manager
    telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

    // Create a new PhoneStateListener
    listener = new PhoneStateListener() {

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            String stateString = "N/A";
            switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                stateString = "Idle";
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                stateString = "Off Hook";
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                stateString = "Ringing";
                break;
            }
            Log.i("DEMO",
                    String.format("\nonCallStateChanged: %s", stateString));
        }
    };

    telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);

}

マニフェストでは、許可を与える必要があります:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
于 2012-08-28T05:16:21.890 に答える