【问题标题】:How to call the system app for contacts' detail如何调用系统应用获取联系人详细信息
【发布时间】:2016-05-20 09:04:00
【问题描述】:

我知道下面的代码可以调用联系人列表的系统活动。

public void showSystemContactsUI(int requestCode) {
    Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
    startActivityForResult(intent, requestCode);
}   

我的问题是如何调用系统UI来获取联系人的详细信息,如附件截图,Thx.

【问题讨论】:

  • 你这样做的目的是什么?

标签: android contacts


【解决方案1】:

您可以使用以下代码 sn-p。您需要先找到目标联系人 ID,然后才能显示其详细信息。

Uri uri = ContactsContract.Contacts.CONTENT_URI;
uri = Uri.withAppendedPath(uri, "1"); // 1 is contact id
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);

【讨论】:

  • 它有效,谢谢。如果不介意,还有一个问题,如果将 startActivity(intent) 替换为 startActivityForResult,是否可以将选择的号码传回而不是拨打它。我尝试用 Intent.ACTION_PICK 替换 Intent.ACTION_VIEW,但没有成功。
  • 你可以关注这篇文章。 stackoverflow.com/questions/9496350/….
【解决方案2】:

创建类调用它 IntentHelper 并将所有相关功能放入您的系统(例如 Dial-NumberSend-SMSView-in-Browser , ... ) 像这样:

public class IntentHelper {


    public static void dialNumber(Context context, String number) {
        if (((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getPhoneType() != TelephonyManager.PHONE_TYPE_NONE) {
            Intent intent = new Intent(Intent.ACTION_DIAL, Uri.fromParts("tel", number, null));
            context.startActivity(intent);
        }
    }

    public static void sendEmail(Context context, String email) {
        Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", email, null));
        context.startActivity(Intent.createChooser(emailIntent, "Send email..."));
    }


    public static void viewInBrowser(Context context, String url) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        if (null != intent.resolveActivity(context.getPackageManager())) {
            context.startActivity(intent);
        }
    }

    public static void shareOnSocials(Context context, String videoUrl) {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT, videoUrl);
        context.startActivity(Intent.createChooser(intent, "share on "));
    }

}

【讨论】:

    猜你喜欢
    • 2012-01-11
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多