بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
گرفتن لیست مخاطبین و شخصی سازی آن؟
سلام دوستان
من می خوام مخاطبین رو بگیرم، نام و شمارشون رو و شخصی سازیشون کنم، نمی خوام تو دیتابیس ذخیره کنم فقط می خوام روی یک دکمه که کلیک شد نام و شماره تمام مخاطبین رو به من بده تا من تو لیست نشون بدم.
: سوالاتی مشابه این قضیه شده ولی نمی خوام برم به صفحه مخاطبین می خوام همونجا تو یه دیالوگ نشون بدم.
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);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .