Приложение Android Messaging распознает сообщения, отправленные из другого приложения

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

В настоящее время, когда мое приложение отправляет сообщение, нет записи об его отправке. Я хотел бы, чтобы сообщение отображалось как любое другое сообщение, отправленное с телефона. Я надеюсь на что-то более простое, чем ручное добавление сообщения в базу данных смс.


person Dan    schedule 29.12.2010    source источник


Ответы (2)


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

        ContentValues values = new ContentValues();
        values.put("address", phoneNumber);
        values.put("body", smsText);
        // Note: This uses an Android internal API to save to Sent-folder
        context.getContentResolver().insert(Uri.parse("content://sms/sent"), values);   

Это использует некоторые внутренние API и может тормозить в будущих выпусках / не работать на некоторых телефонах, но, как я упоминал в своем комментарии, некоторые приложения с миллионами установок делают что-то подобное.

person Asmo Soinio    schedule 14.04.2011

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

В Android нет «встроенного приложения для обмена сообщениями». Хотя на каждом устройстве с поддержкой SMS есть клиент SMS, только некоторые из них используют приложение Messaging, которое является частью проекта Android с открытым исходным кодом. Остальные используют свои.

Несмотря на это, они показывают только сообщения, которые они отправили. Понятие «отправленные» сообщения и «соответствующий поток» — это концепция клиента, а не концепция операционной системы.

Я надеюсь на что-то более простое, чем ручное добавление сообщения в базу данных смс.

В Android нет "базы смс". Вы, вероятно, думаете о поставщике контента из приложения «Сообщения». Опять же, приложение Messaging — это приложение, а не функция операционной системы, и это приложение есть не на всех устройствах. «База данных sms» приложения Messaging не документирована и не поддерживается — напротив, Google специально заявляет, что это не для вашего использования.

person CommonsWare    schedule 29.12.2010
comment
Хорошо, извините, у меня нет всей терминологии, но в основном я просто хочу, чтобы пользователю было ясно, что сообщение было отправлено. Есть ли подходящий способ сделать это? - person Dan; 29.12.2010
comment
Конечно, вы можете уведомить пользователя, как хотите, в своем собственном приложении. Используйте тост или что-то в этом роде. Но вы не можете заставить любое другое приложение уведомлять кого-либо о чем-либо. - person Falmarri; 29.12.2010
comment
Однако это то, что делают такие приложения, как Handcent SMS и Go SMS Pro (с 5-10 млн и 0,5-1 млн установок согласно Android Market). Так что да, вы не должны этого делать, но вы можете. - person Asmo Soinio; 14.04.2011