Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Использование Android Search Interface для поиска сохраненных SMS-сообщений

Автор вопроса: PaawanОтветов: 1

В качестве проекта колледжа мне нужно создать приложение для Android для поиска SMS-сообщений, хранящихся на устройстве. для например. если ввести "привет", то все сообщения, содержащие слово "привет", отображаются на экране. Я знаю, что это напрямую возможно в новых версиях Android, но сейчас я не могу изменить тему, и мне придется создать такое приложение и завершить его в первую неделю января 2012 года!

Я искал в Google и нашел 2 способа: -

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

  2. Использование интерфейса поиска Android для непосредственного использования пользовательского интерфейса поиска Android и создания все проще и проще для меня.

Мне нужны предложения о том, какой метод подходит и какие другие варианты доступны. И как можно связать базу данных SMS с интерфейсом поиска Android и правильно отображать сообщения на экране. С нетерпением жду ваших предложений и ответов, если у вас нет времени, пожалуйста, хотя бы дайте ссылки на полезные ресурсы, связанные с вышеуказанной проблемой!

  • сначала вы должны понять платформу Android и поставщиков контента ... 1-я неделя января 2012 года ... хммм, так что вы делали последние 6 месяцев? удачи в любом случае Selvin 03.01.2012
  • @selvin Я начал в августе 2011 года и прочитал первые несколько сотен страниц Руководства занятого кодера по разработке Android и имеют представление о платформе и узнали об использовании XML и Java для Android и теперь даже могут сделать небольшое приложение самостоятельно, затем я перешел к их 2-й книге, Учебникам по программированию для Android, и сделал много глав из нее, но, к сожалению, ни одной из книг есть какие-либо главы, связанные с моей проблемой с сохраненными SMS-сообщениями, поэтому нужна помощь по этой конкретной проблеме... :-) Paawan 03.01.2012
  • все, что вам нужно сделать, это спросить sms ContentProvider об этих сообщениях ... этот специальный контент-провайдер просто абстрактен для поддержки базы данных SQLite с помощью sms ... context.getContentResolver().query(smsUriInboxOrOutboxOrWhatever, new String[] {columns, to, show}, SearchColumn + ' LIKE ?', new String[] {searchText}, null) ... он вернет Cursor ... теперь вы должны показать все данные из этого Курсор... Selvin 03.01.2012
  • @Selvin Я еще раз прочитаю главы о ContentProvider и Cursors и, надеюсь, скоро смогу хорошо понять приведенный выше код! Большое спасибо!! Paawan 03.01.2012
  • в любом случае у меня не было времени читать все это, но... mobdev. olin.edu/mobdevwiki/FrontPage/Tutorials/ вот именно то, что я написал ... но этот код возвращает все смс, и вам нужно искать .... поэтому selection и selectionArgs не должны быть нулевыми .. интерфейс поиска Android... ну... это слишком сложно для тебя... потому что тебе нужно создать свой собственный ContentProvider... Selvin 03.01.2012
  • Я думаю об использовании второго метода, который я написал в своем исходном посте, а также в заголовке этого вопроса. Если я смогу сделать это приложение с помощью интерфейса поиска Android, тогда его будет намного проще реализовать и использовать. для меня на этом уровне, какие-либо предложения, пожалуйста??? Пожалуйста, дайте какие-либо предложения по поиску сообщений с помощью интерфейса поиска Android Paawan 03.01.2012

androidsms

Ответы

Ответ 1 · рейтинг 1 · Name is Nilay

Используйте поле редактирования и кнопку поиска в качестве графического интерфейса. А основной код для поиска того или иного слова в Inbox такой::

static Uri uri ;
Cursor c;
uri = Uri.parse("content://sms/inbox");
c = getContentResolver().query(uri, null, null ,null, "date DESC");
startManagingCursor(c);

String[] body = new String[c.getCount()];

if(c.moveToFirst()){
for(int i=0;i<c.getCount();i++){
    body[i]= c.getString(c.getColumnIndexOrThrow("body")); //.toString()

    item = check(body[i]);

    c.moveToNext();
}
}
c.close();

Пока функция проверки::

public ArrayList<String> check(String str)
{

    boolean fullContainsSub = str.toUpperCase().indexOf(content.toUpperCase()) != -1;

    if(fullContainsSub)
    {
     itemList.add(str);
    }
    return itemList;
}

Надеюсь, это поможет другим!!!

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы