Я пытаюсь получить доступ к контактам через свое приложение. Поэтому я могу обмениваться информацией по почте другу. Пока отображаются контакты, но когда я нажимаю на имя, чтобы добавить его в электронную почту, приложение просто вернется к предыдущему экрану и письмо не будет отправлено. Текст редактирования не установлен на контакт, который я выбрал.Пытается получить доступ к контактам в андроид-приложении keep crashing
Android явить
<uses-permission android:name="android.permission.READ_CONTACTS"> </uses-permission>
EmailSend класса
contacts.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
Contacts.CONTENT_URI);
startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);
}
});
....
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
System.out.println("yo");
switch (requestCode) {
case CONTACT_PICKER_RESULT:
Cursor cursor = null;
String email = "";
System.out.println("Hello");
try {
Uri result = data.getData();
Log.v("DEBUG: ", "Got a contact result: "
+ result.toString());
// get the contact id from the Uri
String id = result.getLastPathSegment();
// query for everything email
cursor = getContentResolver().query(Email.CONTENT_URI,
null, Email.CONTACT_ID + "=?", new String[] { id },
null);
int emailIdx = cursor.getColumnIndex(Email.DATA);
// let's just get the first email
if (cursor.moveToFirst()) {
email = cursor.getString(emailIdx);
Log.v("DEBUG: ", "Got email: " + email);
} else {
Log.w("DEBUG: ", "No results");
}
} catch (Exception e) {
Log.e("DEBUG: ", "Failed to get email data", e);
} finally {
if (cursor != null) {
cursor.close();
}
// EditText emailEntry = (EditText) findViewById(R.id.invite_email);
personsEmail.setText(email);
if (email.length() == 0) {
Toast.makeText(this, "No email found for contact.",
Toast.LENGTH_LONG).show();
}
}
break;
}
} else {
Log.w("DEBUG: ", "Warning: activity result not ok");
}
}
Что более загадочным является то, что нет ничего, что появляется на LogCat! Таким образом, он превосходит все мои проверки ошибок. Любая идея, почему сбой экрана и адрес электронной почты не добавляются в EditText?
Какое исключение вы получаете? пожалуйста, поделитесь, и если вы тестируете в Marshmallow, вам также нужно проверить разрешение во время работы. В Marshmallow Пользователь имеет возможность отключить доступ после установки приложения. – Darsh
Он говорит, что Keyboard.Facilitator onFinishInput() на logcat. Использование eclipse с подключаемыми модулями Android. Спасибо за помощь мне! – LFG
не обязательно, чтобы каждый контакт имел идентификатор электронной почты. Контакты, которые синхронизируются с gmail, обычно имеют идентификатор электронной почты, но контакты, добавленные вручную, не имеют его –