更新:首先说明一下:我正在寻找一种程序化的方法。我知道使用模拟器很容易实现,但我正在寻找一种在手机上的实际应用程序中实现它的方法。
我已经玩了一段时间了,虽然我可以用收件箱或发件箱写信息
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
仅适用于以下某些内容,因为我尝试过的所有内容都无法让系统收到通知。我考虑过调查内置短信应用程序的代码但找不到它。
以下是我尝试过的事情:
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);
现在作为解决方法,我正在调用短信列表:
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)
。有什么方法可以访问这种方法吗?
答案 0 :(得分:0)
使用DDMS中的“模拟器控件”部分将测试短信/文本发送到模拟器。您还可以输入要发送短信的假号码。
可以在开发指南中使用DDMS文档的"Spoofing calls or SMS text messages"部分找到更多信息