我已经实现了自定义 ContactsDirectoryProvider,当联系人或拨号器应用程序使用 content://com.android.contacts/data/phones/filter
然而,当 InCallUI 或 CallLog 试图检索联系信息时 UR 是 content:/contacts/phone_lookup 未调用我的提供商的query 方法。
有什么建议....
附言 我没有实现单独的同步提供程序,也许这就是问题所在?
最佳答案
我们正在使用的解决方法是使用 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 权限)
然后你可以使用传入的号码来匹配一个人并显示 toast 和/或通知
关于android - 某些操作不调用自定义 ContactsDirectoryProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43741444/