Android 发送SMS方法总是失败
我已经创建了一个发送短信的方法。 所以,它总是失败。 我使用了权限发送\u SMS,但它始终显示错误> 你知道吗Android 发送SMS方法总是失败,android,android-sms,Android,Android Sms,我已经创建了一个发送短信的方法。 所以,它总是失败。 我使用了权限发送\u SMS,但它始终显示错误> 你知道吗 Log.i("Send SMS", ""); String phoneNo = "XXXXXXXXXXXX"; String sms = "HELLO" ; try { // Get the default instance of the SmsManage
Log.i("Send SMS", "");
String phoneNo = "XXXXXXXXXXXX";
String sms = "HELLO" ;
try {
// Get the default instance of the SmsManager
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo,
null,
sms,
null,
null);
Toast.makeText(ChooseDataActivity.this, "Your sms has successfully sent!",
Toast.LENGTH_LONG).show();
} catch (Exception ex) {
Toast.makeText(ChooseDataActivity.this,"Your sms has failed...",
Toast.LENGTH_LONG).show();
ex.printStackTrace();
}
@山地亚萨桑
我希望在用户对AlertDialog消息回答“是”后发送消息。
因此,我对代码进行了如下修改:
AlertDialog.Builder altdial = new AlertDialog.Builder(mContext);
altdial.setMessage(msg).setCancelable(false)
.setPositiveButton("نعم",
new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
SAVE_TO_FILE(filenames,ret_val,mContext,mdata);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
{
int Permission = ContextCompat.checkSelfPermission(mContext, Manifest.permission.SEND_SMS);
// 1 = PERMISSION DENIED
// 2 = PERMISSION DENIED BCZ OPERATION IS NOT ALLOWED
// 0 = PERMISSION GRANTED
if(Permission == 0)
{
SmsManager MySmsManager = SmsManager.getDefault();
ArrayList<String> msgArray = MySmsManager.divideMessage("dfdfdaf");
MySmsManager.sendMultipartTextMessage("0558300694", null,msgArray, null, null);
}
}
else
{
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED)
{
// show error
}
else
{
SmsManager MySmsManager = SmsManager.getDefault();
ArrayList<String> msgArray = MySmsManager.divideMessage("dfdfdaf");
MySmsManager.sendMultipartTextMessage("XXXXXXXXX", null,msgArray, null, null);
}
}
}
})
.setNegativeButton("لا", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setThe_answer(false);
dialog.cancel();
ConfirmTripActivity x = new ConfirmTripActivity() ;
x.myBoolean = false;
}
});
AlertDialog alert = altdial.create();
alert.show();
AlertDialog.Builder altdial=新建AlertDialog.Builder(mContext);
altdial.setMessage(msg).setCancelable(false)
.setPositiveButton(“نعم”),
新建DialogInterface.OnClickListener()
{
@凌驾
public void onClick(DialogInterface dialog,int which)
{
保存到文件(文件名、检索值、mContext、mdata);
if(Build.VERSION.SDK_INT
目前还没有。它没有发送任何短信,也没有向我显示许可信息
非标准编程。。。这是你的问题
if(Build.VERSION.SDK\u INT
提示:1 您应该养成使用
log.d
消息进行开发的习惯。。。它有助于调试
和编程
提示:2
当用户单击“是”->调用一个用户定义的方法,该方法将发送SMS…,不要使覆盖的方法过于复杂和繁重
提示:3
制作一个示例项目(一个新项目
),它只会将一个短信
发送到一个硬编码号码
。使用此答案中提供的code
。如果你阅读、学习并熟练地执行它,它将100%有效。如前所述。。。如果问题仍然存在,请将logcat
转储到此处,以便我或社区能够提供帮助成功时
在您的项目中以您喜欢的任何事件实施它…再说一遍,您没有提到哪个错误…我总是收到Toast.makeText(ChoostataActivity)。这是“您的短信失败了…”,请检查修改后的代码。@sandhyasasaneCheck我对您编辑的问题的编辑答案您甚至没有在权限为1和2时努力显示错误…您甚至没有在注释处努力显示错误…您甚至没有努力转储日志以向stackoverflow社区显示错误…Sor嗯……但还是投了相同的反对票……这样,在编写代码和将问题发布到此处之前,您将付出一些努力……抱歉……谢谢。现在一切正常。@ama989,很高兴它对您有所帮助
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
{
int Permission = ContextCompat.checkSelfPermission(context, Manifest.permission.SEND_SMS);
// 1 = PERMISSION DENIED
// 2 = PERMISSION DENIED BCZ OPERATION IS NOT ALLOWED
// 0 = PERMISSION GRANTED
if(Permission == 0)
{
SmsManager MySmsManager = SmsManager.getDefault();
ArrayList<String> msgArray = MySmsManager.divideMessage(DefaultMsgTemplate);
MySmsManager.sendMultipartTextMessage(SendSMSTo, null,msgArray, null, null);
}
}
else
{
if (ContextCompat.checkSelfPermission(context, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED)
{
// show error
}
else
{
SmsManager MySmsManager = SmsManager.getDefault();
ArrayList<String> msgArray = MySmsManager.divideMessage(DefaultMsgTemplate);
MySmsManager.sendMultipartTextMessage(SendSMSTo, null,msgArray, null, null);
}
}