美文网首页
设置默认拨号应用

设置默认拨号应用

作者: 钦_79f7 | 来源:发表于2019-12-18 11:26 被阅读0次

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

    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+)与电话状态监听

    相关文章

      网友评论

          本文标题:设置默认拨号应用

          本文链接:https://www.haomeiwen.com/subject/yinynctx.html