Android:实现一个使用内置电话堆栈的自定义ConnectionService

Android:实现一个使用内置电话堆栈的自定义ConnectionService,android,telephony,android-7.0-nougat,android-6.0.1-marshmallow,Android,Telephony,Android 7.0 Nougat,Android 6.0.1 Marshmallow,我正在尝试在我的自定义电话应用程序中实现自定义连接服务。根据需要,我需要在“电话设置”菜单中选择我的注册电话帐户作为默认帐户。但是,当我注册一个PhoneAccount以使用本机电话堆栈时,PhoneAccount似乎没有显示出来供使用 让我给你看看我到目前为止做了些什么。此代码注册一个电话帐户,“…不允许管理或拨打内置电话堆栈中的电话” 使可选择的电话帐户显示在设置>呼叫>呼叫帐户下。使用此帐户进行呼叫会绑定到我的ConnectionService实现,但无法在任何地方进行准确呼叫 我实际上想

我正在尝试在我的自定义电话应用程序中实现自定义连接服务。根据需要,我需要在“电话设置”菜单中选择我的注册电话帐户作为默认帐户。但是,当我注册一个PhoneAccount以使用本机电话堆栈时,PhoneAccount似乎没有显示出来供使用

让我给你看看我到目前为止做了些什么。此代码注册一个电话帐户,“…不允许管理或拨打内置电话堆栈中的电话”

使可选择的电话帐户显示在设置>呼叫>呼叫帐户下。使用此帐户进行呼叫会绑定到我的ConnectionService实现,但无法在任何地方进行准确呼叫

我实际上想要设置的功能是PhoneAccount.capability\u CONNECTION\u MANAGER,它使用内置堆栈。但这样做会完全从菜单中删除该帐户,并使其无法选择默认值

你知道我可能做错了什么吗

附言:我上一个问题的继续

更新:以下是my AndroidManifest.xml中的声明,以防万一:

       <service android:name="se.example.phoneclient.MyConnectionService"
        android:label="@string/MyConnectionService"
        android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
        <intent-filter>
            <action android:name="android.telecom.ConnectionService" />
        </intent-filter>
    </service>

更新:已解决
使用PhoneAccount.CAPABILITY\u CONNECTION\u MANAGER的电话帐户会自动绑定,尽管文档中说不会。这意味着您根本不必担心如何选择电话帐户。请记住,这可能会发生变化,因为文档中另有说明。

在哪里必须添加注册电话帐户的代码?在ConnectionManager派生类的start方法中,或在主活动的onCreate方法中?您必须在AndroidManifest.xml中定义哪些其他权限?如果我将register phone帐户代码移动到onCreate,我会得到一个SecurityException。您是如何创建PhoneAccountHandle的?我正在尝试创建这个,但是当我注册perphoneaccount:Package xxx.xxx。。。不属于10145…@RasmusHöglund你知道吗?
       <service android:name="se.example.phoneclient.MyConnectionService"
        android:label="@string/MyConnectionService"
        android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE">
        <intent-filter>
            <action android:name="android.telecom.ConnectionService" />
        </intent-filter>
    </service>