developers guide表示可以选择扩展联系人数据库。 我想要做的是在标准联系人列表中添加一个额外的图标,当按下它时将通知我的应用程序并处理呼叫。 看起来像Whatsup在联系人列表中有这种图标,但目前尚不清楚这是如何完成的。
谢谢, 西蒙
答案 0 :(得分:2)
public final class ContactsContract
它简单地说Android Contact Provider是最后一堂课。从Java 101我们知道我们无法扩展最终类。所以答案是否定的。
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" />
这将为用户提供选择拨号应用程序的选项,该应用程序将成为您的应用程序或标准拨号程序应用程序以完成拨号过程。