代码之家  ›  专栏  ›  技术社区  ›  Abdul Rahman

在安卓系统中,如何在没有用户交互的情况下实用地接收收件人呼叫

  •  0
  • Abdul Rahman  · 技术社区  · 7 年前

    我想写一个安卓代码,它可以在没有用户交互的情况下自动接收收件人的电话? 有没有这样做的可能性,或者我只是在浪费宝贵的时间?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Upendra Shah    7 年前

    private void acceptCall() {
    
            new Thread(new Runnable() {
    
                @Override
                public void run() {
                    try {
                        System.out.println("execute input keycode headset hook");
                        System.out.println("input keyevent " + Integer.toString(KeyEvent.KEYCODE_HEADSETHOOK));
                        Runtime.getRuntime().exec("input keyevent " + Integer.toString(KeyEvent.KEYCODE_HEADSETHOOK));
    
                    } catch (IOException e) {
                        // Runtime.exec(String) had an I/O problem, try to fall back
                        System.out.println("send keycode headset hook intents");
                        String enforcedPerm = "android.permission.CALL_PRIVILEGED";
                        Intent btnDown = new Intent(Intent.ACTION_MEDIA_BUTTON).putExtra(
                                Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HEADSETHOOK));
    
                        Intent btnUp = new Intent(Intent.ACTION_MEDIA_BUTTON).putExtra(
                                Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));
    
                        sendOrderedBroadcast(btnDown, enforcedPerm);
                        sendOrderedBroadcast(btnUp, enforcedPerm);
    
                        System.out.println("Exception " + e.toString());
                    }
                }
    
            }).start();
    
        }