[Android]Android5.0实现静默接听电话功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Android]Android5.0实现静默接听电话功能相关的知识,希望对你有一定的参考价值。

原因:

android曾经能够通过AIDL进行静默接听。可是5.0以后就被谷歌给屏蔽了。这时候我们仅仅能通过其它方式实现了。

解决方式:

try {
            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
            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));

            mContext.sendOrderedBroadcast(btnDown, enforcedPerm);
            mContext.sendOrderedBroadcast(btnUp, enforcedPerm);
        }

简单说就是发送一个耳机按下接听的事件。欺骗系统。


以上是关于[Android]Android5.0实现静默接听电话功能的主要内容,如果未能解决你的问题,请参考以下文章

Android5.0 新特性学习总结

细数Android5.0到Android7.X 多媒体技术新特性

android5.0以上对于APP_SWITCH和HOME键的处理

Android5.0开发范例大全 读书笔记

Android5.0如何正确启用isLoggable 理分析

Kotlin实例----android5.0新特性之palette