向模擬器提供字符串的一種方法是實現用於SMS消息的BroadcastReceiver。然後從DOS框中,你可以'telnet localhost 5554'(或者你的模擬器啓動的任何數字)然後你可以使用模擬器命令sms send 1234 yourString。 (1234就是爲「發送」電話號碼的假。
你將不得不解析接收器內的字符串,使之改變不同類的成員變量等,或別的什麼東西。
這是一個非常笨拙的方法,但它不會影響你的UI和那隻需要的代碼十幾線接收器。
我只是堅持此位的代碼到的onCreate,並設置一個斷點測試原理
rcvIncoming = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = "";
Bundle data = intent.getExtras();
if (data != null) {
Object pdus[] = (Object[]) data.get("pdus");
String sender = null;
for (Object pdu : pdus) {
SmsMessage part = SmsMessage.createFromPdu((byte[]) pdu);
message += part.getDisplayMessageBody();
if (sender == null) {
sender = part.getDisplayOriginatingAddress();
}
}
}
String test = message;// breakpoint here to test
}
};
registerReceiver(rcvIncoming, new IntentFilter(
"android.provider.Telephony.SMS_RECEIVED"));
你將需要這在顯卡同樣:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
。
有趣的想法。從來沒有做過BroadcastReceivers,我認爲它非常簡單(我正在看這個例子:http://stackoverflow.com/questions/1944102/android-sms-receiver-not-working) – rob 2010-11-22 03:33:33
不太難做到。我編輯原始代碼以顯示代碼基礎 – NickT 2010-11-22 09:21:52
好的,謝謝。工程很好,滿足了我的需求! – rob 2010-11-22 16:56:39