Android: удалить SMS в определенном месте - PullRequest
1 голос
/ 23 июня 2010

Я пытаюсь понять разницу между телефонами и программным обеспечением на них. Я кодирую и тестирую на Droid Incredible. Обозреватель контента content://sms работает нормально, и я могу удалить threadIds на Incredible, но мое приложение вылетает на Moto Droid Milestone. Я тестирую Milestone, используя Moto Dev Studio, используя пакет эмулятора Milestone. Он отлично работает в эмуляторе, но не на реальном устройстве.

Почему content: // sms отлично работает на Incredible, но не на Milestone? Почему он работает на эмуляторе Milestone, а не на устройстве Milestone?

Такой метод удаления показан ниже, где uri равен content://sms + threadId

getContentResolver().delete(deleteUri, "address=? and date=?", new String[] {msg.getOriginatingAddress(), String.valueOf(msg.getTimestampMillis())});

Многие люди говорят, что такой обозреватель контента не является частью SDK. Понял. Как я могу удалить смс по законным причинам, например, создать отдельное приложение с паролем, который хранит смс-сообщения отдельно и отдельно от основной системы обмена текстовыми сообщениями?

1 Ответ

2 голосов
/ 23 июня 2010

Почему content: // sms отлично работает Невероятно, но не на Milestone

Потому что, как я продолжаю указывать, content://sms не является частью Android SDK. Нет никаких оснований для того, чтобы это было так же. Производители устройств могут изменить его, устранить его и так далее. Google сказал вам не использовать его . Поставщик контента Календаря уже подвергся аналогичным изменениям с аналогичным воздействием на приложения. Это просто провайдеры, которые являются частью приложений, они не предназначены для разработчиков.

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

Вы не можете удалять сообщения из других приложений SMS и оставаться в пределах SDK. Попытка удалить сообщения от поставщика содержимого SMS просто может не работать на некоторых устройствах, может не повлиять на другие устройства, может вызвать сбой других приложений на других устройствах и т. Д.

В этом отношении вы не можете создать отдельное приложение SMS и придерживаться границ SDK, поскольку Intent, который вам нужно получить, не имеет документов (хотя и широко известен). Не исключено, что некоторые производители устройств могут изменить, например, Intent на другое действие. Это, по меньшей мере, несколько менее вероятно, так как это будет изменение ОС, а не изменение какого-либо случайного приложения (например, «Сообщения», дом так называемого поставщика содержимого SMS). Однако это возможно.

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