2016-02-10 3 views
0

Я знаю, что следующий код может вызвать системную активность для списка контактов.Как вызвать системное приложение для подробностей контактов

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

Мой вопрос заключается в том, как вызвать пользовательский интерфейс системы для получения сведений о контактах, как прилагаемый скриншот, Thx. enter image description here

+0

Какова ваша цель для этого? – Amy

ответ

1

Вы можете использовать следующий фрагмент кода. Вам нужно будет найти идентификатор целевого контакта, прежде чем показывать его детали.

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); 
+0

Он работает, спасибо. Еще один вопрос, если не возражаете, если заменить startActivity (намерение) на startActivityForResult, можно ли передать выбранный номер обратно, а не набирать его. Я попытался заменить Intent.ACTION_VIEW на Intent.ACTION_PICK, но не работал. –

+0

Вы можете следить за этим сообщением. http://stackoverflow.com/questions/9496350/pick-a-number-and-name-from-contacts-list-in-android-app. –

0

Создать класс называют его IntentHelper и поставить все функции соответствующих вашим системам (например Dial-Number, Send-SMS, View-в-браузере, ...) в что вот так:

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 ")); 
    } 

} 
+0

Отличная идея! благодаря –

Смежные вопросы