android 제어 연락처 의도를 추가해도 ICS에서 onActivityResult 데이터가 반환되지 않습니다.



안드로이드 다른 앱 제어 (1)

Android 4.0.3 이상인 경우 추가로 새로운 의도를 제공해야합니다.

public static final String INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED = "finishActivityOnSaveCompleted";

intent.putExtra (INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED, true);

Android 4.0 ~ 4.0.2에 대한 해결책이 없습니다.

누군가?

내 응용 프로그램이 Android의 표준 연락처 인터페이스를 통해 새 연락처를 만들도록 사용자에게 요청합니다. 그런 다음 새로 생성 된 연락처에서 정보를 다시 읽을 수 있기를 바랍니다.

내 코드는 this 사이트에서 "새 연락처 추가"를 기반으로합니다.

Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(Contacts.CONTENT_TYPE);
intent.putExtra(ContactsContract.Intents.Insert.PHONE, number);
startActivityForResult(intent, PICK_CONTACT);

그리고

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Intent intent = new Intent(this, Foo.class);
    Uri uri = data.getData(); //I get nullpointer here on ICS
    intent.putExtra("contact", ContactAccessor.getInstance().loadContact(this, uri));
    startActivity(intent);
    finish();
}

이 코드는 Android 2.2 및 2.3에서 제대로 실행됩니다. 그것은 연락처 응용 프로그램을 시작하고 사용자가 이름과 이메일 주소와 같은 것들을 입력 할 수있게하고 완료되면 "ok"또는 "save"또는 "whatever"을 내 응용 프로그램에 반환하고 입력 한 내용을 읽을 수 있습니다. Android 4.0 (ICS)에서는 사용자가 연락처를 만들면 내 앱으로 돌아 가지 않습니다. 그리고 연락처보기를 종료 할 때 (뒤로 버튼을 통해) 연락처 정보의 의도가 포함되지 않습니다.

ICS에서 동일한 동작을 수행하기 위해 어떤 의도를 사용해야합니까?





android-4.0-ice-cream-sandwich