为什么我的应用即使具有必要的权限也无法发送短信?

时间:2019-06-03 18:07:20

标签: android sms android-permissions

我的应用正在尝试向另一个号码发送短信。我具有用户授予的必要权限(SEND_SMS)。但是,该消息不会发送。默认的消息传递应用程序显示消息,并带有“发送/重新发送失败”提示。这背后的原因是什么,我该如何解决? 我的代码非常简单-

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneno, null, txt, null, null);

注意-我的应用在短信频率限制以下正常运行 编辑:从活动运行时,它工作正常,但从服务运行时,则失败。这背后的原因是什么?

2 个答案:

答案 0 :(得分:0)

问题似乎是由于从哪里调用了代码。我有一个服务(在单独的线程上运行)产生了一个新的线程来发送SMS,出于某种原因,这似乎导致了问题。在删除所有不必要的复杂性并直接从服务发送短信后,它可以正常工作。

答案 1 :(得分:-1)

改为使用以下代码:

Intent sInt = new Intent(Intent.ACTION_VIEW);
sInt.putExtra("address", new String[]{txtMobile.getText().toString()});
sInt.putExtra("sms_body",txtMessage.getText().toString());
sInt.setType("vnd.android-dir/mms-sms");

确保清单中有此标签:

<uses-permission android:name="android.permission.SEND_SMS"/>