简体   繁体   English

如何在手机的android4.0中实现自动接听功能?

[英]How to realize the Auto answer function in android4.0 of mobile phone?

I want to set a function that it can receive the call automatically above the android 4.0 versions. 我想设置一个函数,使其可以在android 4.0版本以上自动接收呼叫。 The code like this: 像这样的代码:

synchronized void autoAnswerCall(){

  Context context = TApplication.nowApplication;

   try

         {

          //insert earphones

             Intent localIntent1 = new Intent(Intent.ACTION_HEADSET_PLUG);

             localIntent1.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

             localIntent1.putExtra("state", 1);

             localIntent1.putExtra("microphone", 1);

             localIntent1.putExtra("name", "Headset");

             context.sendOrderedBroadcast(localIntent1, "android.permission.CALL_PRIVILEGED");


             //Press the headset button

             Intent localIntent2 = new Intent(Intent.ACTION_MEDIA_BUTTON);

             KeyEvent localKeyEvent1 = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK);

             localIntent2.putExtra("android.intent.extra.KEY_EVENT", localKeyEvent1);

             context.sendOrderedBroadcast(localIntent2, "android.permission.CALL_PRIVILEGED");


             //Open the headset button

             Intent localIntent3 = new Intent(Intent.ACTION_MEDIA_BUTTON);

             KeyEvent localKeyEvent2 = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK);

             localIntent3.putExtra("android.intent.extra.KEY_EVENT", localKeyEvent2);

             context.sendOrderedBroadcast(localIntent3, "android.permission.CALL_PRIVILEGED");


             //Pull out earphones

             Intent localIntent4 = new Intent(Intent.ACTION_HEADSET_PLUG);

             localIntent4.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

             localIntent4.putExtra("state", 0);

             localIntent4.putExtra("microphone", 1);

             localIntent4.putExtra("name", "Headset");

             context.sendOrderedBroadcast(localIntent4, "android.permission.CALL_PRIVILEGED");

         }catch (Exception e){

             e.printStackTrace();

         }

}

It realized the Auto answer function in android2.3 of simulator and mobile phone. 在模拟器和手机的android2.3中实现了自动接听功能。 It also can in android4.0 simulator. 它也可以在android4.0模拟器中使用。 But in android4.0 mobile phone it can not. 但是在android4.0手机中却不能。

I use aidl reflex, it can not. 我使用辅助反射,不能。 How to realize the Auto answer function in android4.0 of mobile phone? 如何在手机的android4.0中实现自动接听功能? Any idea? 任何想法?

You can use Telephony manager to receive your ringing call,For this you have to put this code in Broadcast receiver 您可以使用电话管理器来接收您的来电,为此您必须将此代码放入广播接收器中

 if(state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))
        {          
            TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);  
            Class c = null;
                 c = Class.forName(telephony.getClass().getName());
                 Method m = null;
                 m = c.getDeclaredMethod("getITelephony");
                 m.setAccessible(true);              
                telephonyService = (ITelephony) m.invoke(telephony);
                telephonyService.answerRingingCall();

       }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM