কম্পিউটার

অ্যান্ড্রয়েডে কনটেন্ট প্রোভাইডার থেকে ফোন নম্বর কিভাবে পেতে হয়?


এই উদাহরণটি দেখায় কিভাবে android-এ সামগ্রী প্রদানকারীর থেকে ফোন নম্বর পেতে হয়

ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷

ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
   android:layout_width = "match_parent"
   android:gravity = "center"
   android:layout_height = "match_parent">
   <ListView
      android:id = "@+id/list"
      android:layout_width = "wrap_content"
      android:textSize = "30sp"
      android:layout_height = "wrap_content"
      android:text = "Click"/>
</LinearLayout>

উপরের কোডে, আমরা লিস্ট ভিউ নিয়েছি।

ধাপ 3 − src/MainActivity.java

-এ নিম্নলিখিত কোড যোগ করুন
package com.example.myapplication;
import android.annotation.TargetApi;
import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.os.Build;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
   public static final int REQUEST_READ_CONTACTS = 79;
   ListView list;
   ArrayList mobileArray;
   ArrayList numberArray;
   @TargetApi(Build.VERSION_CODES.LOLLIPOP)
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      numberArray = new ArrayList();
      if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) {
         mobileArray = getAllContacts();
      } else {
         requestPermission();
      }
      list = findViewById(R.id.list);
      ArrayAdapter adapter = new ArrayAdapter<String>(this,
      android.R.layout.simple_list_item_1, android.R.id.text1, mobileArray);
      list.setAdapter(adapter);
      list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String number = (String) numberArray.get(position);
            Toast.makeText(MainActivity.this,number,Toast.LENGTH_LONG).show();
         }
      });
   }
   private void requestPermission() {
      if (ActivityCompat.shouldShowRequestPermissionRationale(this,android.Manifest.permission.READ_CONTACTS)) {
         // show UI part if you want here to show some rationale !!!
      } else {
         ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_CONTACTS},
         REQUEST_READ_CONTACTS);
      }
      if (ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.READ_CONTACTS)) {
      } else {
         ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_CONTACTS},
         REQUEST_READ_CONTACTS);
      }
   }
   @Override
   public void onRequestPermissionsResult(int requestCode,
   String permissions[], int[] grantResults) {
      switch (requestCode) {
         case REQUEST_READ_CONTACTS: {
            if (grantResults.length > 0  && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
               mobileArray = getAllContacts();
            } else {
               // permission denied,Disable the
               // functionality that depends on this permission.
            }
            return;
         }
      }
   }
   private ArrayList getAllContacts() {
      ArrayList<String> nameList = new ArrayList<>();
      ContentResolver cr = getContentResolver();
      Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
      null, null, null, null);
      if ((cur ! = null ? cur.getCount() : 0) > 0) {
         while (cur ! = null && cur.moveToNext()) {
            String id = cur.getString(
            cur.getColumnIndex(ContactsContract.Contacts._ID));
            String name = cur.getString(cur.getColumnIndex(
            ContactsContract.Contacts.DISPLAY_NAME));
            nameList.add(name);

         if (cur.getInt(cur.getColumnIndex(
            ContactsContract.Contacts.HAS_PHONE_NUMBER)) > 0) {
               Cursor pCur = cr.query(
               ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
               null,
               ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
               new String[]{id}, null);
               while (pCur.moveToNext()) {
                  String phoneNo = pCur.getString(pCur.getColumnIndex(
                     ContactsContract.CommonDataKinds.Phone.NUMBER));
                     numberArray.add(phoneNo);

               }
               pCur.close();
            }
         }
      }
      if (cur ! = null) {
         cur.close();
      }
      return nameList;
   }
}

পদক্ষেপ 4৷ − AndroidManifest.xml

-এ নিম্নলিখিত কোড যোগ করুন
<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "https://schemas.android.com/apk/res/android"
   package = "com.example.myapplication">
   <uses-permission android:name = "android.permission.READ_CONTACTS" />
   <application
      android:allowBackup = "true"
      android:theme = "@style/AppTheme.NoActionBar"
      android:icon = "@mipmap/ic_launcher"
      android:label = "@string/app_name"
      android:roundIcon = "@mipmap/ic_launcher_round"
      android:supportsRtl = "true">
      <activity
         android:name = ".MainActivity"
         android:configChanges = "keyboardHidden|orientation|screenSize">
         <intent-filter>
            <action android:name = "android.intent.action.MAIN" />
            <action android:name = "android.intent.action.CREATE_SHORTCUT" />
            <category android:name = "android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইসটি নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে –

অ্যান্ড্রয়েডে কনটেন্ট প্রোভাইডার থেকে ফোন নম্বর কিভাবে পেতে হয়?

এখন নীচে দেখানো ফোন নম্বর দেখানোর জন্য textview-এ ক্লিক করুন –

অ্যান্ড্রয়েডে কনটেন্ট প্রোভাইডার থেকে ফোন নম্বর কিভাবে পেতে হয়?



  1. অ্যান্ড্রয়েডে ডিফল্ট ফোন নম্বর কীভাবে পাবেন?

  2. কিভাবে অ্যান্ড্রয়েডে ডিফল্ট ফোন MmsUserAgent পাবেন?

  3. অ্যান্ড্রয়েডে ArrayBlockingQueue থেকে হেড এলিমেন্ট কিভাবে পাবেন?

  4. অ্যান্ড্রয়েডে একটি ফোন নম্বর কীভাবে আনব্লক করবেন