বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

বোনাস: কনট্যাক্ট ডাটা পড়া

উপরোক্ত কোডটি দেখায় যে পিপল অ্যাপ থেকে কীভাবে রেজাল্ট পেতে হয় যা আসলে কীভাবে রেজাল্ট থেকে ডাটা পড়তে হয় সেসম্পর্কে বিস্তারিত আলোচনায় যায় না, কারন এটা content providers সম্পর্কে আরও উন্নত আলোচনার দাবী করে। কিন্তু আপনি যদি উৎসাহী হোন, এখানে আরও কিছু কোড আছে যা আপনাকে দেখাবে বাছাই করা কনট্যাক্ট থেকে ফোন নাম্বার পেতে কীভাবে রেজাল্ট ডাটাকে অনুসন্ধান করতে হয়:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // Check which request it is that we're responding to
    if (requestCode == PICK_CONTACT_REQUEST) {
        // Make sure the request was successful
        if (resultCode == RESULT_OK) {
            // Get the URI that points to the selected contact
            Uri contactUri = data.getData();
            // We only need the NUMBER column, because there will be only one row in the result
            String[] projection = {Phone.NUMBER};

            // Perform the query on the contact to get the NUMBER column
            // We don't need a selection or sort order (there's only one result for the given URI)
            // CAUTION: The query() method should be called from a separate thread to avoid blocking
            // your app's UI thread. (For simplicity of the sample, this code doesn't do that.)
            // Consider using CursorLoader to perform the query.
            Cursor cursor = getContentResolver()
                    .query(contactUri, projection, null, null, null);
            cursor.moveToFirst();

            // Retrieve the phone number from the NUMBER column
            int column = cursor.getColumnIndex(Phone.NUMBER);
            String number = cursor.getString(column);

            // Do something with the phone number...
        }
    }
}

নোট: অ্যান্ড্রয়েড ২.৩ (এপিআই লেভেল ৯) এর পূর্বে, Contacts Provider এর উপর অনুসন্ধান করতে (উপরে যেমনটি দেখানো হয়েছে) প্রয়োজন যে আপনার অ্যাপ READ CONTACTS পারমিশন কে ডিক্লেয়ার করে (Security and Permissions দেখুন)। কিন্তু অ্যান্ড্রয়েড ২.৩ দিয়ে শুরু করলে, কনট্যাক্ট/পিপল অ্যাপ কনট্যাক্ট প্রভাইডার থেকে পড়তে আপনার অ্যাপকে একটি অস্থায়ী অনুমতি প্রদান করে যখন এটা আপনাকে একটা রেজাল্ট ফেরত দিবে। অস্থায়ী অনুমতি শুধুমাত্র নির্দিষ্ট কনট্যাক্ট রিকোয়েস্ট এ প্রয়োগ হয়, যার ফলে যেটা ইনটেন্টের Uri কর্তৃক সুনির্দিষ্ট সেটা ছাড়া আপনি একটি কনট্যাক্টেকে অনুসন্ধান করতে পারবেন না, যদি না আপনি READ CONTACTS পারমিশন ডিক্লেয়ার করেন