开发人员指南指出,可以选择扩展联系人数据库。我想做的是在标准联系人列表中添加一个额外的图标,当它被按下时会导致我的应用程序被通知并处理呼叫。似乎 Whatsup 在联系人列表中有这种图标,但不清楚这是如何完成的。
谢谢,西蒙
public final class ContactsContract
它简单地说 Android Contact Provider 是一个最终类。从 Java 101 我们知道我们不能扩展 final 类。所以答案是否定的。
I would like to do is to add an additional icon to the standard contacts list
我不认为这是一个大问题。ContentProvider当您将此数据显示回您的应用程序时,您可以创建自己的数据并检索数据。您可以使用 ID 字段将原始联系人映射到您自己的联系人。您可以根据需要添加任意数量的字段。
when it is pressed will cause my application to be notified and handle the call.
您不能修改标准电话簿应用程序,但您可以拥有自己的电话簿并做任何您想做的事情,例如为每个联系人添加按钮或显示附加图像。考虑到这些附加数据存储在您的 ContentProvider 上。
但是,对于处理来自标准电话簿应用程序的呼叫,您不需要任何自定义内容提供程序。您只需要IntentFilter在您的AndroidManifest文件中进行以下操作。
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
和许可,
<uses-permission android:name="android.permission.CALL_PHONE" />
这将为用户提供一个选项来选择一个拨号器应用程序,该应用程序将成为您的应用程序或标准拨号器应用程序来完成拨号过程。