مشکل در ویرایش نام یک مخاطب دفترچه تلفن (اندروید استودیو)

ساخت وبلاگ

سلام،
ببخشید دوستان من در زمینه‌ی زبان جاوا تازه‌کار هستم. بنده قصد دارم یه برنامه بنویسم که بتونه نام خانوادگی یکی از مخاطب‌ها رو به یه اسم از پیش تعیین شده‌ی دیگه (در اینجا "anyname") تغییر بده، کد رو هم نوشتم ولی وقتی با شبیه‌ساز اجرا می‌کنم، فقط روی بعضی از نسخه‌ها (APIها) اجرا میشه. در ابتدا یه دکمه گذاشتم که با لمس کردنش تابع اجرای کد فراخوانی میشه:

android:onClick="start"

اینم کد اصلی (تابع start):

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContrac t.Data.CONTENT_URI);
builder.withSelection(ContactsContract.CommonDataK inds.StructuredName.CONTACT_ID + "=?", new String[]{String.valueOf(1)});
builder.withValue(ContactsContract.CommonDataKinds .StructuredName.FAMILY_NAME, "anyname");
ops.add(builder.build());

try
{
getContentResolver().applyBatch(ContactsContract.A UTHORITY, ops);
}
catch (Exception e)
{
e.printStackTrace();
}

این کد {String.valueOf(1)} هم واسه‌ی اینه که بره سراغ مخاطبی که آیدیش ۱ هستش که میشه اولی. برنامه روی همه‌ی APIها به خوبی کار می‌کنه به غیر از اینا:

4.3 (API 18)
4.4.4 (API 19)
6 (API 23)
7 (API 24)
7.1 (API 25)

موقع اجرا هم نه اروری میده نه هیچ گونه exception. به عنوان مثال کدهای بخش run و monitor رو برای API 24 توی یه نوت‌پد (به خاطر تعداد خطوط زیاد) گذاشتم و آپلود کردم که شاید ایراد کار اینجا مشخص باشه که من سر در نمیارم:

https://uploadfiles.io/0sz9n

دو مجوز خواندن و نوشتن رو هم به فایل Manifest اضافه کردم.

حالا خواهش‌مندم اگه کسی از دوستان سر در میاره که ایراد کار از کجاست، لطفا راهنمایی کنه.
ممنون.

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 165 تاريخ : يکشنبه 4 تير 1396 ساعت: 1:43