В общем изучаю программирование на Android. У меня в приложении, когда нажимается кнопка, показывается список всех контактов:
Далее пользователь выбирает, какой-нибудь контакт. Контакт выбирается, все замечательно. После этого я хочу, чтобы показывалось стандартное окно информации о контакте. Например так:
Но этого не происходит. Пытаюсь сделать это вот таким вот образом:
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