월페이퍼와 같은 일부 응용 프로그램은 기본 활동이 없으며 시작 의도를 통해 시작할 수 없지만 컨텍스트가 맞으면 일반 의도를 사용할 수 있어야합니다. 그러나이 문제가 특정 응용 프로그램에 적용되는지 확실하지 않은 경우 ...
나는 당신이 다른 홈 화면이나 롬을 만드는 것으로 가정 할 것입니다.
이
연락처 도움이 될 것입니다/사람들 앱은 사용자가 연락처를 선택하고 모든 연락처 정보를 앱에 대한 액세스를 제공의 ACTION_PICK 액션을 사용하여 MIME 유형을 지정하도록하려면 연락처
을 선택 Contacts.CONTENT_TYPE.
결과 onActivityResult() 콜백에 전달 된 결과에는 선택한 연락처를 가리키는 content : URI가 포함됩니다. 이 응답은 앱에 READ_CONTACTS 권한이없는 경우에도 주소록 제공자 API를 사용하여 해당 연락처를 읽을 수있는 임시 권한을 앱에 부여합니다.
팁 : 전화 번호 나 이메일 주소와 같은 특정 연락처 정보에만 액세스해야하는 경우 특정 연락처 데이터를 선택하는 방법에 대한 다음 섹션을 참조하십시오.
액션 ACTION_PICK 데이터 URI 계획 없음 MIME 타입 Contacts.CONTENT_TYPE 예 의도 :
대화 상대 URI를 일단 연락처 세부 정보를 검색하는 방법에 대한 자세한 내용은
static final int REQUEST_SELECT_CONTACT = 1;
public void selectContact() {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_SELECT_CONTACT);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SELECT_CONTACT && resultCode == RESULT_OK) {
Uri contactUri = data.getData();
// Do something with the selected contact at contactUri
...
}
}
가에 대한 세부 정보를 가져 오는 읽기 연락처. 위의 의도로 연락처 URI를 검색 할 때 해당 연락처의 세부 정보를 읽는 데 READ_CONTACTS 권한이 필요하지 않습니다.
선택 특정 연락처 데이터
사용자가 같은 전화 번호, 이메일 주소, 또는 다른 데이터 형식으로 연락처, 정보의 특정 부분을 선택 ACTION_PICK 액션을 사용하는 MIME 타입을 지정하게하려면 연락처의 전화 번호를 가져 오려면 CommonDataKinds.Phone.CONTENT_TYPE과 같이 아래 나열된 콘텐츠 유형 중 하나를 선택하십시오.
연락처에서 한 가지 유형의 데이터 만 검색해야하는 경우 ContactsContract.CommonDataKinds 클래스의 CONTENT_TYPE을 사용하는이 기술이 연락처를 사용하는 것보다 효율적입니다.CONTENT_TYPE (이전 섹션에 표시된대로) 결과를 통해 연락처 공급자에 대한보다 복잡한 쿼리를 수행 할 필요없이 원하는 데이터에 직접 액세스 할 수 있기 때문입니다.
결과 onActivityResult() 콜백에 전달 된 결과에는 선택한 연락처 데이터를 가리키는 content : URI가 포함됩니다. 이 응답은 앱에 READ_CONTACTS 권한이없는 경우에도 해당 연락처 데이터를 읽을 수 있도록 앱에 임시 사용 권한을 부여합니다.
액션 ACTION_PICK 데이터 URI 계획 없음 MIME 타입 CommonDataKinds.Phone.CONTENT_TYPE 전화 번호와 연락처에서 선택하십시오. CommonDataKinds.Email.CONTENT_TYPE 이메일 주소가있는 연락처에서 선택하십시오. CommonDataKinds.StructuredPostal.CONTENT_TYPE 우편 주소가있는 연락처에서 선택하십시오. 또는 ContactsContract 아래에있는 다른 많은 CONTENT_TYPE 값 중 하나입니다.
예 의도 :
이
static final int REQUEST_SELECT_PHONE_NUMBER = 1;
public void selectContact() {
// Start an activity for the user to pick a phone number from contacts
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType(CommonDataKinds.Phone.CONTENT_TYPE);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_SELECT_PHONE_NUMBER);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SELECT_PHONE_NUMBER && resultCode == RESULT_OK) {
// Get the URI and query the content provider for the phone number
Uri contactUri = data.getData();
String[] projection = new String[]{CommonDataKinds.Phone.NUMBER};
Cursor cursor = getContentResolver().query(contactUri, projection,
null, null, null);
// If the cursor returned is valid, get the phone number
if (cursor != null && cursor.moveToFirst()) {
int numberIndex = cursor.getColumnIndex(CommonDataKinds.Phone.NUMBER);
String number = cursor.getString(numberIndex);
// Do something with the phone number
...
}
}
}
내가
http://developer.android.com/guide/components/intents-common.html
매우 아름다운 설명! 우아하게 말로 나타내며 간단합니다! 엄지 손가락! – La5t5tarfighter
안녕하세요 CommonsWare, 늦은 답장을 드려 죄송합니다. 빠른 답변을 기대하지 않고 코딩에 지쳤습니다.) ...... 귀하의 설명과 코드 예제는 더 좋을 수 없습니다. 그 정확히 내가 뭘 필요 (애플 리케이션의 활동). SOOOOOO 정말 고마워! :) – treesoft