نمایش مخاطبان ذخیره شده در گوشی به همراه شماره تلفن در اندروید
پنجشنبه 4 خرداد 1396در این مقاله قصد داریم که برنامه ای بنویسید که به کاربر این اجازه را می دهد که بتواند به مخاطبان داخل گوشی دسترسی پیدا کند و شماره تلفن کاربر را به همراه اسم کاربر نمایش داده شود.
ابتدا باید مجوز دسترسی زیر را قرار دهید:
<uses-permission android:name="android.permission.READ_CONTACTS" />
در کلاس خود قطعه کد زیر را بنویسید:
import android.Manifest; import android.content.pm.PackageManager; import android.database.Cursor; import android.provider.ContactsContract; import android.support.v4.app.ActivityCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { ListView listView ; ArrayList<String> StoreContacts ; ArrayAdapter<String> arrayAdapter ; Cursor cursor ; String name, phonenumber ; public static final int RequestPermissionCode = 1 ; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListView)findViewById(R.id.listview1); button = (Button)findViewById(R.id.button1); StoreContacts = new ArrayList<String>(); EnableRuntimePermission(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { GetContactsIntoArrayList(); arrayAdapter = new ArrayAdapter<String>( MainActivity.this, R.layout.contact_items_listview, R.id.textView, StoreContacts ); listView.setAdapter(arrayAdapter); } }); } public void GetContactsIntoArrayList(){ cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null, null, null); while (cursor.moveToNext()) { name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); phonenumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); StoreContacts.add(name + " " + ":" + " " + phonenumber); } cursor.close(); } public void EnableRuntimePermission(){ if (ActivityCompat.shouldShowRequestPermissionRationale( MainActivity.this, Manifest.permission.READ_CONTACTS)) { Toast.makeText(MainActivity.this,"CONTACTS permission allows us to Access CONTACTS app", Toast.LENGTH_LONG).show(); } else { ActivityCompat.requestPermissions(MainActivity.this,new String[]{ Manifest.permission.READ_CONTACTS}, RequestPermissionCode); } } @Override public void onRequestPermissionsResult(int RC, String per[], int[] PResult) { switch (RC) { case RequestPermissionCode: if (PResult.length > 0 && PResult[0] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(MainActivity.this,"Permission Granted, Now your application can access CONTACTS.", Toast.LENGTH_LONG).show(); } else { Toast.makeText(MainActivity.this,"Permission Canceled, Now your application cannot access CONTACTS.", Toast.LENGTH_LONG).show(); } break; } } }
حالا در کلاس قطعه کد زیر را قرار دهید:
<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" tools:context="com.android_examples.contactsinlistview_android_examplescom.MainActivity" android:background="#FFF9C4" android:padding="4dp"> <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_centerHorizontal="true" android:id="@+id/listview1" android:layout_below="@+id/button1" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/button1" android:text="Click Here to load Contacts" /> </RelativeLayout>
خروجی به صورت زیر خواهد بود:
- Android
- 1k بازدید
- 0 تشکر