am start -a android.intent.action.VIEW content://contacts/people/8
input keyevent 22 # right button
input keyevent 22 # reach field in the right corner
input keyevent 66 # enter
input keyevent 20 # go down
input keyevent 20 # go down --> reached "Delete"
input keyevent 66 # enter
input keyevent 22 # button "Ok"
input keyevent 66 # enter
После нажатия на кнопку «Удалить» постоянно вылетает приложение контактов (Контакты были закрыты). Использование этих ключевых событий никогда не работало на моем эмуляторе — если я нажимаю на кнопки вручную (мышью), все работает…
Третий способ — удаление записей в базах данных. Для меня это не имеет смысла, потому что тогда они полностью удаляются -- если их удалить "обычным" способом, контакты все равно сохраняются в некоторых таблицах (например, "удаленные контакты").
Как удалить контакт с помощью оболочки adb? Я знаю raw_contact_id контакта.
Я пробовал разные способы, но ни один из них не увенчался успехом.
[list] [*] Чтобы отредактировать контакт, я использовал команду
[code]am start -a android.intent.action.EDIT content://contacts/people/8 [/code]
и это сработало.
Но удалив его с помощью
[code]am start -a android.intent.action.DELETE content://contacts/people/8 [/code]
не работает и показало следующее сообщение об ошибке:
Действие не запущено, невозможно разрешить намерение { act=android.intent.action.DELETE dat=content://contacts/people/8 flg=0x10000000
(flg=0x10000000 означает FLAG_RECEIVER_FOREGROUND, я думаю, что он устанавливается автоматически.)
Нужно ли мне устанавливать какие-то флаги? Или почему это не работает? [*]Более навороченный способ — смоделировать процесс, как обычный пользователь удаляет контакт.
[code]am start -a android.intent.action.VIEW content://contacts/people/8 input keyevent 22 # right button input keyevent 22 # reach field in the right corner input keyevent 66 # enter input keyevent 20 # go down input keyevent 20 # go down --> reached "Delete" input keyevent 66 # enter input keyevent 22 # button "Ok" input keyevent 66 # enter [/code]
После нажатия на кнопку «Удалить» постоянно вылетает приложение контактов (Контакты были закрыты). Использование этих ключевых событий никогда не работало на моем эмуляторе — если я нажимаю на кнопки вручную (мышью), все работает… [*]Третий способ — удаление записей в базах данных. Для меня это не имеет смысла, потому что тогда они полностью удаляются -- если их удалить "обычным" способом, контакты все равно сохраняются в некоторых таблицах (например, "удаленные контакты"). [/list]