안드로이드 Activity 실행 결과 받기
프로그래밍/Android 2013. 8. 29. 03:00안드로이드 Activity 실행 결과 받기
카메라 앱을 실행 시킨후 사용자가 찍은 사진을 돌려받고 싶을 때, 또는 연락처에서 선택한 전화번호를 받고 싶을 때
startActivityForResult() 를 사용하면 다른 앱에서 사용자가 선택한 결과를 받을 수 잇다.
샘플 코드
static final int PICK_CONTACT_REQUEST = 1;
private void pickContact(){
Intent pickContactIntent = new Intent( Intent.ACTION_PICK, Uri.parse("content://contacts"));
pickContactIntent.setType( Phone.CONTENT_TYPE);
// PICK_CONTACT_REQUEST, requestCode 가 결과를 얻는데 사용된다.
startActivityForResult( pickContactIntent, PICK_CONTACT_REQUEST);
}
사용자가 연락처를 선택하면 Activity 의 onActivityResult() 메소드가 호출된다.
protected void onActivityResult( int requestCode, int resultCode, Intent data){
// startActivityForResult 에서 넘긴 requestCode 를 체크한다.
if( requestCode == PICK_CONTACT_REQUEST){
if( resultCode == RESULT_OK){
}
}
}
사용자가 선택한 연락처 가져오는 코드
@Override
protected void onActivityResult( int requestCode, int resultCode, Intent data){
if( requestCode == PICK_CONTACT_REQUEST){
if( resultCode == RESULT_OK){
// 선택한 결과는 Uri 리턴되며 해당 Uri 를 쿼리하여 얻어오게 된다.
Uri contactUri = data.getData();
String[] projection = {Phone.NUMBER};
// 주의 : UI 의 블락킹 때문에라도( 화면 버벅거림) 쿼리실행은 별도의 스레드에서 처리하는게 좋다.
Cursor cursor = getContentResolver().query( contactUri, projection, null, null, null);
cursor.moveToFirst();
int column = cursor.getColumnIndex(Phone.NUMBER);
String number = cursor.getString(column);
// 선택한 연락처의 전화번호를 EditText 에 보여준다.
EditText editText = (EditText)findViewById( R.id.edit_message);
editText.setText( number);
}
}
}
'프로그래밍 > Android' 카테고리의 다른 글
안드로이드 카메라앱 비디오 다루기 (0) | 2013.08.30 |
---|---|
안드로이드 Camera 앱을 활용하여 사진찍기 (4) | 2013.08.29 |
안드로이드 다른 앱과 상호작용하기 (0) | 2013.08.28 |
안드로이드 File 다루기 (0) | 2013.08.28 |
안드로이드 Fragment 활용하기 (0) | 2013.08.28 |