我该怎么做?
获取我的 AVD 的端口号 [来自我的代码而不是命令行。]
使用在步骤 1 中获得的端口号从 AVD 向其自身发送消息。
(有可能:一个模拟器可以向自己发送短信)
从控制台发送短信:
1)打开一个控制台;
2) 键入“telnet localhost xxxx”,其中 xxxx 是模拟器 ID。这与标题栏中模拟器名称前面的数字相同,通常为 5554,除非您有其他模拟器正在运行;
3) 键入“sms send 1234567 message”,其中 message 是 SMS 消息的文本
4) 观看模拟器上的通知栏,您会看到一条短信已发送
只要你愿意做一个肉件短信网关,在模拟器之间手动传输消息,你就可以得到你想要的。
在模拟器实例之间发送短信:
使用模拟器 ID 作为电话号码。似乎模拟器使用格式为 1 555 521 xxxx 的虚拟电话号码,其中 xxxx 是模拟器 ID,例如 1 555 521 5554。
非常好的问题:我的回答也有点复杂,但很简单:是的...您可以获得运行 AVD 的端口号。 简单的。你必须:
获取模拟器的电话号码
电话号码的后四位为端口号 5554、5556 等。
代码片段:
TelephonyManager telephonyManager = (TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = telephonyManager.getLine1Number();
String portNumber = phoneNumber.substring(phoneNumber.length() - 4, phoneNumber.length());
Log.d(TAG, "Line1 number # " + portNumber);
tv1.setText(portNumber);
在清单文件中允许权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
输出: