6

ソース:

listener = new PhoneStateListener()
    {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            super.onCallStateChanged(state, incomingNumber);
            Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
            toast.show();
        }

    };

    ((TelephonyManager)getSystemService(TELEPHONY_SERVICE)).listen(listener , PhoneStateListener.LISTEN_CALL_STATE )

こんにちは、許可を得
てこのコードを使用してandroid.permission.READ_PHONE_STATE、開始された通話の数を含むトースト メッセージを取得しています。私の問題は、incomingNumber が空であることです。呼び出しが発信か着信かは関係ありません。トーストは表示されますが、空です。
これに対するいくつかの解決策を見てきましたが、解決策は完全に異なる方法で番号を取得することでした。自分のコードが自分のニーズに使用できるかどうかを知りたいです。
アドバイスをありがとう、
アダム

4

1 に答える 1

2

申請書に許可を含めてください。

<uses-permission android:name="android.permission.READ_PHONE_STATE" />


if(state == TelephonyManager.CALL_STATE_RINGING){
Toast toast = Toast.makeText(getApplicationContext(), incomingNumber, Toast.LENGTH_LONG);
toast.show();
}

CALL_STATE_OFFHOOK最初の呼び出しの場合は null を返します。したがって、使用する必要がありますCALL_STATE_RINGING

うまくいけば、それはあなたを助けます。

于 2011-11-04T10:39:01.823 に答える