设置默认拨号应用

2019-12-18  本文已影响0人  钦_79f7

将自己的应用设置为系统默认应用,不考虑具体开发逻辑,首先要满足一个条件是,你要告诉系统你具有处理这方面的能力,而如何告诉系统呢?

  1. 实现 InCallService 并注册清单
@RequiresApi(Build.VERSION_CODES.M)
class MyPhoneCallService: InCallService() {
    override fun onCallAdded(call: Call?) {
        super.onCallAdded(call)
    }
    override fun onCallRemoved(call: Call?) {
        super.onCallRemoved(call)
    }
}
<service
    android:name=".MyPhoneCallService"
    android:permission="android.permission.BIND_INCALL_SERVICE">
    <meta-data
        android:name="android.telecom.IN_CALL_SERVICE_UI"
        android:value="true" />
    <intent-filter>
        <action android:name="android.telecom.InCallService" />
    </intent-filter>
</service>
  1. 实现电话接听的UI
class FakeCallActivity:AppCompatActivity()
<activity android:name=".FakeCallActivity" >
    <!-- provides ongoing call UI -->
    <intent-filter>
        <action android:name="android.intent.action.DIAL" />
        <data android:scheme="tel" />
    </intent-filter>
    <!-- provides dial UI -->
    <intent-filter>
        <action android:name="android.intent.action.DIAL" />
    </intent-filter>
</activity>

完成上述两步,就可以在 应用管理的默认应用 -> 拨号 选择默认应用中看到自己的应用了。

本文不涉及具体逻辑开发,仅用来记录成为默认拨号应用,需要做的系统标记。

具体实现逻辑,可以参考此链接安卓代替系统默认电话应用(Android 6.0+)与电话状态监听

上一篇下一篇

猜你喜欢

热点阅读