Android PhoneAccount.CAPABILITY_CONNECTION_MANAGER 怎么用呢?

问题描述

无论如何我可以使用 CAPABILITY_CONNECTION_MANAGER 我想完全依赖 androids 功能来拨打电话,但我只需要回调事件,这样我就可以在我的一端触发事情。我找不到很多关于如何使用它的文档。

本质上的想法是建立一个电话帐户和一个connectionService,让用户选择我的服务来拨打电话。并使用 ConnectionService 它是电话本机 UI 拨号器的包装器。我想完全依赖框架电话堆栈来拨打电话。我只需要这个东西,所以我可以从中获取一些事件,我需要知道何时呼叫实际上与两端连接。

这是我创建电话帐户的方式:

 @RequiresApi(api = VERSION_CODES.LOLLIPOP)
    private void registerPhoneAccount() {
        TelecomManager telecomManager = (TelecomManager) getSystemService(Context.TELECOM_SERVICE);

        ComponentName componentName = new ComponentName("justice.org.callapp","justice.org.callapp.services.MyOutGoingMusicInCallService");
        PhoneAccountHandle phoneAccountHandle = new PhoneAccountHandle(componentName,"Call Music");
        PhoneAccount phoneAccount = PhoneAccount.builder(phoneAccountHandle,"CallApp")
            .setCapabilities(PhoneAccount.CAPABILITY_CONNECTION_MANAGER)
            .build();

        telecomManager.registerPhoneAccount(phoneAccount);
    }

在清单中它看起来像这样:

<service
      android:name=".services.MyOutGoingMusicInCallService"
      android:label="@string/some_label_for_my_connection_service"
      android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE"
      android:enabled="true"
      android:exported="true"
      android:icon="@mipmap/ic_launcher"/>

首先什么也没有发生,我的应用程序没有出现在设置中,如果我使用 CAPABILITY_CALL_PROVIDER 那么它就可以工作,我成为电话的处理程序,但随后我需要负责实现所有功能拨号器。我不想要那个。让 android 继续做它所做的,我只需要它做的回调...你有什么建议,我需要什么特殊权限?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)