Rehberimizden numara okumak için öncelikle AndroidManifest.XML dosyasına ReadContacs izni verilmeli bunun için Manifestonuza aşağıdaki satırı ekleyebilirsiniz.
<uses-permission android:name="android.permission.READ_CONTACTS">
</uses-permission>
Daha sonra ise activity_main.java dosyasına aşağıdaki gibi kodları yerleştirebilirsiniz.
package com.example.yonetici.rehberokuma;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void RehberOku(View view) {
pickContact();
}
static final int PICK_CONTACT_REQUEST = 1; // istek kodu
private void pickContact() {
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); // sadece telefon numarası olan kullanıcıları göstersin
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// metoda gelen isteğin, yanıt vereceğimiz istek olup olmadığını kontrol edelim
if (requestCode == PICK_CONTACT_REQUEST) {
// isteğin başarılı sonuçlandırıldığını doğrulayalım
if (resultCode == RESULT_OK) {
// seçilen kişiye işaret eden URI'yi alalım
Uri contactUri = data.getData();
// sadece NUMBER sütununa ihtiyacımız var
String[] projection = {ContactsContract.CommonDataKinds.Phone.NUMBER};
// NUMBER sütununu alarak kişi üzerinde sorgulama yapalım
// Bir seçim ya da sıralama işine gerek yok (gelen URI'de sadece bir tane sonuç var)
// DİKKAT: query() metodunu uygulama arayüzünüzü (UI) bloklamamak için
// farklı bir thread üzerinde çağırmalısınız. Örneğin basitliğini korumak için o
// işlemi burada yapmıyoruz
// sorguyu gerçekleştirenin CursorLoader olduğu gözünüzden kaçmasın
Cursor cursor = getContentResolver()
.query(contactUri, projection, null, null, null);
cursor.moveToFirst();
// telefon numarasını NUMBER sütunundan alalım
int column = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String number = cursor.getString(column);
TextView txt3 =(TextView)findViewById(R.id.textView3);
txt3.setText(number);
// telefon numarasıyla ilgili işlemle...
}
}
}
}
activity.xml dosyamız ise böyle;
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.yonetici.rehberokuma.MainActivity">
<Button
android:text="Oku"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/button"
android:onClick="RehberOku" />
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="22dp"
android:id="@+id/textView3" />
</RelativeLayout>
Hiç yorum yok:
Yorum Gönder