某些操作不会调用自定义ContactsDirectoryProvider

问题描述 投票:12回答:1

我已经实现了自定义ContactsDirectoryProvider,当Contacts或Dialer应用程序使用表单内容的URI搜索联系人时,它可以正常工作://com.android.contacts/data/phones/filter

但是,当InCallUI或CallLog尝试使用URis内容检索联系信息时:/ contacts / phone_lookup不会调用我的提供者的查询方法。

任何建议请....

附:我没有实现单独的同步提供程序可能这是问题吗?

android android-contentprovider android-contacts
1个回答
0
投票

我们使用的解决方法是使用BroadcastReceiver来侦听传入的调用:

<receiver android:name=".domain.callerid.CallerIdBroadcastReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE" />
    </intent-filter>
</receiver>

然后在BroadcastReceiver的onReceive方法中,您可以获取传入的数字:

intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)

(这需要以Android Pie开头的READ_CALL_LOG权限)

然后,您可以使用收到的号码来匹配某个人并显示祝酒和/或通知

© www.soinside.com 2019 - 2024. All rights reserved.