آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

گرفتن لیست مخاطبین و شخصی سازی آن؟

hvm  9 سال پیش  9 سال پیش
0 0

سلام دوستان

من می خوام مخاطبین رو بگیرم، نام و شمارشون رو و شخصی سازیشون کنم، نمی خوام تو دیتابیس ذخیره کنم فقط می خوام روی یک دکمه که کلیک شد نام و شماره تمام مخاطبین رو به من بده تا من تو لیست نشون بدم.

: سوالاتی مشابه این قضیه شده ولی نمی خوام برم به صفحه مخاطبین می خوام همونجا تو یه دیالوگ نشون بدم.

0 0
یاسر جان اتفاقا اینو دیده بودم، اما وقتی روی دکمه کلیک میکنم گوشی چند لحظه هنگ می کنه بعد می نویسه که برنامه پاسخ نمی دهد. (9 سال پیش)
0 0
احتمالا همون مشکل همیشگی! رو اندروید 6 تست میکنید اپ رو ؟ (9 سال پیش)
0 0
احتمالا پرمیشن هم می خواد (9 سال پیش)
0 0
درسته پرمیشن هم می خواد ولی با وجود پرمیشن بازم هنگ می کنه. بدون پرمیشن خطا می ده. (9 سال پیش)
0 0
میگم که از اندروید 6 به بعد پرمیشن ها عوض شدن باید runtime بگیرین (9 سال پیش)
0 0
آخه اندروید 6 ندارم! (9 سال پیش)
0 0
پس کدتون رو بزارید (9 سال پیش)
0 0
همین کد پایینه اما شمام بی زحمت تست کنید تو یه باتتان بذارید کلیک کنید ببینید برنامه هنگ نمی کنه؟ +پرمیشن (9 سال پیش)
0 0
یه نوع دیگه برای گرفتن مخاطبین داریم که تو اکتیویتی ریزالت قرار داده می شه و کار می کنه، اگر قبلی کار نکرد کد این رو می ذارم، اما نمی دونم چطور باید شخصی سازیش کنم! (9 سال پیش)
0 0
من تست کردم هیچ مشکلی نداشت کدتون و ارور LogCat رو بزارید. (9 سال پیش)
 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
یاسر   9 سال پیش
0 0

اینو تست کن شاید کمکت کنه

ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
        null, null, null, null);

if (cur.getCount() > 0) {
    while (cur.moveToNext()) {
        String id = cur.getString(
                cur.getColumnIndex(ContactsContract.Contacts._ID));
        String name = cur.getString(cur.getColumnIndex(
                ContactsContract.Contacts.DISPLAY_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));
                Toast.makeText(NativeContentProvider.this, "Name: " + name 
                        + ", Phone No: " + phoneNo, Toast.LENGTH_SHORT).show();
            }
            pCur.close();
        }
    }
}
پاسخ به سوال 
Amir  9 سال پیش
0 0

این پرمیشن رو به AndroidManifest اضافه کنید:

<uses-permission android:name="android.permission.READ_CONTACTS"/>
پاسخ به سوال 
hvm  9 سال پیش
0 0

من با یه ایتنت می رم تو مخاطبین و با کد زیر گزینه انتخاب شده رو درمیارم:

 @Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (PICK_CONTACT):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {

String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
String hasPhone = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

if (hasPhone.equalsIgnoreCase("1")) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id,
null, null);
phones.moveToFirst();
cNumber = phones.getString(phones.getColumnIndex("data1"));
System.out.println("number is:" + cNumber);
}
c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}
}
break;
}
Log.i("LOGG", "LOG9 = " + cNumber);
}
0 0
لطفا یه کدی که بتونم شماره و اسم مخاطبین رو بگیرم و شخصی سازیشون کنم بذارید. (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .