According to the documentation, the old class only works on GSM. I think that's why it works on virtual machines, but not on a real device(maybe CDMA). An older similar question without answer is here:
how to resove smsSend() error in sl4a python
0
Xi Jin
On
I have the same problem when I use Qpython.
But in old Qpython3(py3.2), I can use sl4a.Android module to send message.
Looks like the source code of sl4a's sms facade is here: https://github.com/damonkohler/sl4a/blob/master/android/Common/src/com/googlecode/android_scripting/facade/SmsFacade.java
And the class it uses was deprecated long long ago. Android documentation is here: https://developer.android.com/reference/android/telephony/gsm/SmsManager.html
According to the documentation, the old class only works on GSM. I think that's why it works on virtual machines, but not on a real device(maybe CDMA). An older similar question without answer is here: how to resove smsSend() error in sl4a python