在Android中的呼叫状态期间记录

时间:2016-01-21 09:24:07

标签: android

Everyboday。我想在android中调用状态期间记录一些信息,如phonenumber,调用时间等。我尝试使用以下代码构建:

add_message()

我还在AndroidManifest.xml中写了一些代码:

package com.test.dialuplog;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;

public class IncomingBroadcastReceiver extends BroadcastReceiver {

    String mPhoneNumber;
    public static IncomingBroadcastReceiver pThis;
     @Override
        public void onReceive(Context context, Intent intent) {

            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
            telephonyManager.listen(new CustomPhoneStateListener(context), PhoneStateListener.LISTEN_CALL_STATE);

        }


     public class CustomPhoneStateListener extends PhoneStateListener {

            //private static final String TAG = "PhoneStateChanged";
            Context context; //Context to make Toast if required 
            public CustomPhoneStateListener(Context context) {
                super();
                this.context = context;
            }

            @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                super.onCallStateChanged(state, incomingNumber);

                switch (state) {
                case TelephonyManager.CALL_STATE_IDLE:
                    //when Idle i.e no call
                    Toast.makeText(context, "Phone state Idle", Toast.LENGTH_LONG).show();
                    break;
                case TelephonyManager.CALL_STATE_OFFHOOK:
                    //when Off hook i.e in call
                    //Make intent and start your service here
                    Toast.makeText(context, "Phone state Off hook", Toast.LENGTH_LONG).show();
                    break;
                case TelephonyManager.CALL_STATE_RINGING:
                    //when Ringing
                    Toast.makeText(context, "Phone state Ringing", Toast.LENGTH_LONG).show();
                    break;
                default:
                    break;
                }
            }
        }

}

编码后,我用不同的电话打电话给我的电话。 但没有任何反应,这些代码是从开源中得到的,但没有任何反应。有没有人经历过?如果是的话,请教我错误的地方。谢谢。

0 个答案:

没有答案