Edittext와 버튼을 사용하고 있습니다. 버튼을 누르면 전화 번호부가 열리고 사용자가 전화 번호부를 선택하면 선택한 전화 번호가 편집 문구에 표시됩니다. 많은 자습서를 따랐지만 보여주고있는 방법은 이미 가치가 떨어졌습니다.전화 번호부 연락처에 액세스하는 방법?
나는이 권한을 선언 : 매니페스트
에 READ_CONTACTS은 Digvesh 파텔에서 제공Edittext와 버튼을 사용하고 있습니다. 버튼을 누르면 전화 번호부가 열리고 사용자가 전화 번호부를 선택하면 선택한 전화 번호가 편집 문구에 표시됩니다. 많은 자습서를 따랐지만 보여주고있는 방법은 이미 가치가 떨어졌습니다.전화 번호부 연락처에 액세스하는 방법?
나는이 권한을 선언 : 매니페스트
에 READ_CONTACTS은 Digvesh 파텔에서 제공@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contact_picker);
// this opens the activity. note the Intent.ACTION_GET_CONTENT
// and the intent.setType
((Button)findViewById(R.id.pick_person)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// user BoD suggests using Intent.ACTION_PICK instead of .ACTION_GET_CONTENT to avoid the chooser
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// BoD con't: CONTENT_TYPE instead of CONTENT_ITEM_TYPE
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = null;
try {
c = getContentResolver().query(uri, new String[]{
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE },
null, null, null);
if (c != null && c.moveToFirst()) {
String number = c.getString(0);
int type = c.getInt(1);
showSelectedNumber(type, number);
}
} finally {
if (c != null) {
c.close();
}
}
}
}
}
public void showSelectedNumber(int type, String number) {
Toast.makeText(this, type + ": " + number, Toast.LENGTH_LONG).show();
}
대답이 정확합니다. 그는 숫자를 반환하는 "유형"의 접촉을 사용했습니다. 그래서 나는 그의 코드를 사용하고 나의 어플리케이션에서 사용했던 몇 가지 변경을했다. 그 사람에게 어쩌면 도움이
public int REQUESTCODE=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button select = (Button) findViewById(R.id.select);
select.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, REQUESTCODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data != null) {
Uri uri = data.getData();
Log.i("data", uri.toString());
if (uri != null) {
Cursor c = null;
try {
c = getContentResolver().query(uri, new String[]{
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE },
null, null, null);
if (c != null && c.moveToFirst()) {
String name = c.getString(0);
String number = c.getString(1);
int type = c.getInt(2);
showSelectedNumber(name, number,type);
}
} finally {
if (c != null) {
c.close();
}
}
}
}
}
public void showSelectedNumber(String name, String number, int type){
TextView usernumber = (TextView) findViewById(R.id.textView1);
String typelabel = (String) ContactsContract.CommonDataKinds.Phone.getTypeLabel(getResources(), type, "");
usernumber.setText(name+": "+number+" "+typelabel);
}
내가 READ_CONTACTS –
이외의 다른 권한을 선언해야 할 예 유 –
사람 –