'안드로이드 전화번호 가져오기'에 해당되는 글 1건

  1. 2010.05.17 안드로이드 전화번호 가져오기 1
04.Anddoid2010. 5. 17. 13:23
반응형
출처 : http://www.kandroid.org/board/board.php?board=sourcecode&command=body&no=18

안녕하세요. 왕초보 신입생 사로자바입니다.
마소 잡지를 토대로 공부하고 있는데 SDK 1.0 에서 바뀐 부분이 좀 있어서...
내공이 부족한 저로서는 잘 나가다가 진도가 꽉 막힌답니다.
  
 
전화번호부 목록 불러오는 코드입니다.
마소 잡지랑 바뀐부분 비교해보면서 보셔도 좋을것 같네요.
제가 이해한대로 주석을 달아봤어요... 제대로 달았는지 의심이;;
 

public class HelloAndroid extends Activity {
	private static final String TAG = "HelloAndroid";
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		// 레이아웃 설정		
		LinearLayout layout = new LinearLayout(this);
		layout.setOrientation(LinearLayout.VERTICAL);
		
		// 주소록 URI		
		Uri people = Contacts.People.CONTENT_URI;
		// 검색할 컬럼 정하기
		String[] projection = new String[] {
				Contacts.People._ID,
				Contacts.People.NAME,
				Contacts.People.NUMBER
		};
		
		// 쿼리 날려서 커서 얻기
		Cursor cursor = managedQuery(people, projection, null, null, null);
		if(cursor.moveToFirst()) {
			// 컬럼명으로 컬럼 인덱스 찾기 
			int idIndex = cursor.getColumnIndex("_id");
			int nameIndex = cursor.getColumnIndex(Contacts.PeopleColumns.NAME);
			int numberIndex = cursor.getColumnIndex("number");
			
			do {
				// 요소값 얻기
				int id = cursor.getInt(idIndex);
				String name = cursor.getString(nameIndex);
				String number = cursor.getString(numberIndex);
				
				// 레이블에 기록			
				TextView tv = new TextView(this);
				tv.setText("id=" + id + ", name=" + name + ", number=" + number);				
				layout.addView(tv);
				
				// LogCat에 로그 남기기
				Log.i(TAG, "id=" + id + ", name=" + name + ", number=" + number);
			} while(cursor.moveToNext());
		}
		
		// 컨텐트에 뷰 등록
		setContentView(layout);
	}
}
 
참고로 AndroidManifest.xml 파일에는 전화번호부를 읽을 수 있는 권한을 줘야 하네요...
<uses-permission android:name="android.permission.READ_CONTACTS" />
 
그럼 모두들 열공합시다~
Posted by 1010