Как мне фальсифицировать отправку СМС-сообщений И системное уведомление? Программный подход? - PullRequest
1 голос
/ 08 марта 2012

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

Я уже давно с этим играюсь, хотя яможете писать сообщения в папку «Входящие» или «Исходящие» с помощью

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.Есть ли способ получить доступ к этому методу?

1 Ответ

0 голосов
/ 08 марта 2012

Используйте раздел «Управление эмулятором» в DDMS для отправки тестового смс / текста на ваш эмулятор.Вы также можете ввести поддельный номер, с которого отправляется смс.

enter image description here

Более подробную информацию можно найти в "Подмена звонков или текстовых сообщений SMS" раздел Использование документа DDMS в руководстве разработчика

...