Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android中的呼叫方向_Java_Android - Fatal编程技术网

Java Android中的呼叫方向

Java Android中的呼叫方向,java,android,Java,Android,我想确定我的应用程序上的呼叫方向。当我在我的真实设备上运行应用程序时,在LogCat下拨打的是一个传出的电话,方向显示为传出:(已拨号码),我可以选择其中的一个 但当我接到来电时,我仍然会收到这个传出:(传入号码) 这可能是什么原因?我试图交换我的代码,看看它会带来什么变化,但还是没有运气 有人可能经历过同样的事情,或者知道问题出在哪里 这是我的代码: @Override public int onStartCommand(Intent intent, int flags,

我想确定我的应用程序上的呼叫方向。当我在我的真实设备上运行应用程序时,在LogCat下拨打的是一个传出的电话,方向显示为传出:(已拨号码),我可以选择其中的一个

但当我接到来电时,我仍然会收到这个传出:(传入号码)

这可能是什么原因?我试图交换我的代码,看看它会带来什么变化,但还是没有运气

有人可能经历过同样的事情,或者知道问题出在哪里

这是我的代码:

   @Override
        public int onStartCommand(Intent intent, int flags, int startId) {

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

            if (state == null) {
                // outgoing call
                String number = intent.getStringExtra(intent.EXTRA_PHONE_NUMBER);
                Log.i("TAG", "OUTGOING: " + phoneNumber);
                //String direction = number;

            }
            else if (state.equals(TelephonyManager.EXTRA_STATE_RINGING))        
            {
                // incoming call
                String number = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
                Log.i("TAG", "INCOMING: " + phoneNumber);
                String direction = number;
            }

我尝试在
stringnumber=intent.getStringExtra(intent.EXTRA\u电话号码)的位置交换代码
to
String number=intent.getStringExtra(TelephonyManager.EXTRA\u传入\u编号);在我的else if语句之后,更改
String number=intent.getStringExtra(TelephonyManager.EXTRA\u INCOMING\u number)
to
String number=intent.getStringExtra(intent.EXTRA_电话号码);`看看它会带来什么变化,但还是没有运气

@凌驾 公共int onStartCommand(Intent Intent、int标志、int startId){


我修复了我的问题,只需将它添加到我的PhoneReceiver类中

  //my declaration
        public static String CALL_DIRECTION;
        public static String phoneNumber;

        else if (extraState.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
                                if (phoneNumber == null)
                                phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
                                CALL_DIRECTION = "INCOMING";

    Intent myIntent = new Intent(context, RecordService.class);                 myIntent.putExtra("commandType",FixedContants.STATE_INCOMING_NUMBER);
                        myIntent.putExtra("phoneNumber",

 phoneNumber);
                    CALL_DIRECTION = "OUTGOING";

这就解决了我的问题。

什么原因使传入呼叫在传出呼叫上?当我接到呼叫时,在这种情况下,如果我的LogCat上的传入将是传入:null。
  //my declaration
        public static String CALL_DIRECTION;
        public static String phoneNumber;

        else if (extraState.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
                                if (phoneNumber == null)
                                phoneNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
                                CALL_DIRECTION = "INCOMING";

    Intent myIntent = new Intent(context, RecordService.class);                 myIntent.putExtra("commandType",FixedContants.STATE_INCOMING_NUMBER);
                        myIntent.putExtra("phoneNumber",

 phoneNumber);
                    CALL_DIRECTION = "OUTGOING";