iTeam1991
@iTeam1991
Техник-электронщик, 25 лет

Как показать стандартное окно, в котором отображется информация об определенном контакте?

В общем изучаю программирование на Android. У меня в приложении, когда нажимается кнопка, показывается список всех контактов:
9303d7b6078847fd90c1705eb0ed1e07.png
Далее пользователь выбирает, какой-нибудь контакт. Контакт выбирается, все замечательно. После этого я хочу, чтобы показывалось стандартное окно информации о контакте. Например так:
04cd90a91c864a469b9d5e278a048b3f.png
Но этого не происходит. Пытаюсь сделать это вот таким вот образом:

MainActivity.java:
// Показать список всех телефонных контактов и дать возможность пользователю выбрать один из них
public void viewContact() {
        // Start an activity for the user to pick a phone number from contacts
        Intent intent = new Intent(Intent.ACTION_PICK);
        intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(intent, REQUEST_VIEW_CONTACT_DETAILS);
        }
    }

// Пользовать выбрал контакт. Теперь надо отобразить о нем информацию
@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_VIEW_CONTACT_DETAILS && resultCode == RESULT_OK) {
            Uri contactUri = data.getData();
            Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
            if (intent.resolveActivity(getPackageManager()) != null) {
                startActivity(intent);
            } else {
                Toast.makeText(getApplicationContext(), "Can't resolve activity", Toast.LENGTH_LONG).show();
            }
        }
    }


AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.iteam91.commonintents">

    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"></action>
                <category android:name="android.intent.category.LAUNCHER"></category>
            </intent-filter>
        </activity>

    </application>

</manifest>


Получаю Toast "Can't resolve activity", то есть intent.resolveActivity(getPackageManager()) равно null (система не может сопоставить ни одно активити для данного случая). Помогите пожалуйста.
P. S. Версия андроида 4. 1. 2
  • Вопрос задан
  • 280 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы