Обновление: чтобы заявить это сначала: я ищу программный способ.Я знаю, что это легко сделать с помощью эмуляторов, но я ищу способ, чтобы реализовать его в реальном приложении на моем телефоне.
Я уже давно с этим играюсь, хотя яможете писать сообщения в папку «Входящие» или «Исходящие» с помощью
ContentValues values = new ContentValues();
values.put("address", "5551");
values.put("body", "the text of this message");
getContentResolver().insert(Uri.parse("content://sms/inbox"),values)
и, конечно,
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
. WRITE_SMS
есть только для некоторых из следующих действий, потому что со всеми вещами, которые я пробовалЯ не смог заставить систему получать уведомления.Я думал о том, чтобы исследовать код встроенного приложения SMS, но не смог его найти.
Вот что я попробовал:
context.getContentResolver().notifyChange(Uri.parse("content://sms/inbox",null);
имеет такой же эффект, как:
Intent intent = new Intent("android.provider.Telephony.SMS_RECEIVED");
byte[] b = (byte[])(SmsMessage.getSubmitPdu("5551","5552","some_text",false).encodedMessage);
Object[] vrs = {b};
intent.putExtra("pdus",vrs);
sendBroadcast(intent);
В качестве обходного пути я сейчас вызываю sms-список:
Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(new ComponentName("com.android.mms","com.android.mms.ui.ConversationList"));
startActivity(intent);
Есть идеи или подсказки?
Хорошо, так что япросматривал код Android, особенно http://www.java2s.com/Open-Source/Android/android-platform-apps/Mms/com/android/mms/transaction/MessagingNotification.java.htm
Насколько я понимаю, все, что мне нужно сделать, это позвонить в общедоступный статический MessagingNotification.blockingUpdateAllNotifications(context)
после написания SMS.Есть ли способ получить доступ к этому методу?