Не удается обновить контактную информацию в Android с помощью кода - PullRequest
0 голосов
/ 10 апреля 2010

Я пытаюсь обновить / изменить мелодию контакта, используя этот код:

ContentValues values = new ContentValues();
values.put(ContactsContract.Data.CUSTOM_RINGTONE, "D:/TempDownloads/BurpSounds/Alex.wav");

getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, values , "DISPLAY_NAME = 'Ani'", null);

Я получаю сообщение: «приложение неожиданно остановилось»

что не так с моим кодом и как мне это сделать?

спасибо

Мне удалось использовать logcat и ddms, вот журнал:

04-10 13:47:45.419: ERROR/AndroidRuntime(399): Caused by: java.lang.SecurityException: Permission Denial: writing com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=399, uid=10025 requires android.permission.WRITE_CONTACTS
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at android.os.Parcel.readException(Parcel.java:1218)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at android.content.ContentProviderProxy.update(ContentProviderNative.java:532)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at android.content.ContentResolver.update(ContentResolver.java:737)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at com.example.helloandroid.HelloAndroid.getContactList(HelloAndroid.java:36)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at com.example.helloandroid.HelloAndroid.onCreate(HelloAndroid.java:19)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
04-10 13:47:45.419: ERROR/AndroidRuntime(399):     ... 11 more

путь, который я использовал: Environment.getExternalStorageDirectory().getPath() + "/Alex.wav"

1 Ответ

1 голос
/ 10 апреля 2010

Во-первых, вы должны использовать adb logcat, DDMS или перспективу DDMS в Eclipse, чтобы проверить трассировку стека Java, связанную с «приложением неожиданно остановлено», чтобы вы могли увидеть, что пошло не так.

В этом случае ни на вашем телефоне Android, ни на эмуляторе Android не будет диска D:, поскольку Android - это не Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...