从主屏幕快捷方式开始快速联系?

时间:2011-02-01 13:02:49

标签: android

在Nexus或HTC手机等多款手机上,您可以在主屏幕上添加快速联系人快捷方式。当你按下人物图像时,你会得到一个带有各种图标的小弹力弹出窗口。我试图复制这种行为。

以下是从快捷方式启动快速联系时触发的意图的一些记录:

02-01 06:55:58.460: INFO/ActivityManager(1259): Starting activity: Intent { act=com.android.contacts.action.QUICK_CONTACT dat=content://com.android.contacts/contacts/lookup/2795i4464ea058cf583f3/177 flg=0x14200000 cmp=com.motorola.blur.contacts/com.android.contacts.ui.QuickContactActivity bnds=[18,253][108,340] (has extras) }

我试图复制这个但没有成功:

final Intent shortcutIntent = new Intent("com.android.contacts.action.QUICK_CONTACT");
shortcutIntent.addFlags(0x14200000);
Uri uri = Uri.parse("content://com.android.contacts/contacts/lookup/2795i694f803d0e56adba/182");
shortcutIntent.setData(uri);

final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, contact.name);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, contact.icon);

这使得快捷方式很好,除了[extras]之外,日志几乎相同。我还没弄清楚我需要发送什么附加内容。

02-01 07:01:53.147: INFO/ActivityManager(1259): Starting activity: Intent { act=com.android.contacts.action.QUICK_CONTACT dat=content://com.android.contacts/contacts/lookup/2795i694f803d0e56adba/182 flg=0x14200000 cmp=com.motorola.blur.contacts/com.android.contacts.ui.QuickContactActivity bnds=[245,252][355,382] }

02-01 07:01:53.280: ERROR/AndroidRuntime(12317): java.lang.NullPointerException
02-01 07:01:53.280: ERROR/AndroidRuntime(12317):     at com.android.contacts.ui.QuickContactActivity.onNewIntent(QuickContactActivity.java:77)

是否有人知道从快捷方式拨打快速联系人的正确方法或我需要发送的附加内容是什么?

1 个答案:

答案 0 :(得分:1)

使用intent.putExtra(ContactsContract.QuickContact.EXTRA_MODE, QuickContact.MODE_SMALL);