Android Handle телефонный звонок - PullRequest
7 голосов
/ 01 декабря 2010

У меня аудиозапись, когда приходит телефонный звонок, мне нужно остановить запись, как я могу это сделать?

Ответы [ 2 ]

16 голосов
/ 01 декабря 2010

Вы должны использовать PhoneStateListener:

TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);

// somewhere else
private PhoneStateListener mPhoneListener = new PhoneStateListener() {
    public void onCallStateChanged(int state, String incomingNumber) {
        try {
            switch (state) {
            case TelephonyManager.CALL_STATE_RINGING:
                // do something...
                break;

            case TelephonyManager.CALL_STATE_OFFHOOK:
                // do something...
                break;

            case TelephonyManager.CALL_STATE_IDLE:
                // do something...
                break;
            default:
                Log.d(TAG, "Unknown phone state=" + state);
            }
        } catch (RemoteException e) {}
    } 
};

Не забудьте включить это разрешение в свой манифест:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
1 голос
/ 01 декабря 2010

Я никогда не пытался получить доступ к телефонным материалам на Android, но проверьте здесь -

http://developer.android.com/reference/android/telephony/package-summary.html

и здесь -

http://developer.android.com/reference/android/telephony/PhoneStateListener.html

и здесь -

http://developer.android.com/reference/android/telephony/TelephonyManager.html

...