android - 为什么我的 SMS 应用程序没有发送到正确的号码?
问题描述
我正在输入一个 11 号码的电话号码,但我遇到了问题,因为它没有发送到正确的号码,我不知道为什么。你们能帮帮我吗?这是我的代码,我真的不知道它的问题,我希望你们能在这里帮助我
public class MainActivity extends Activity {
private final static int SEND_SMS_PERMISSION_REQUEST_CODE = 111;
private Button sendMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sendMessage = findViewById(R.id.send_message);
final EditText phone = findViewById(R.id.phone_no);
final EditText message = findViewById(R.id.message);
sendMessage.setEnabled(false);
if (checkPermission(Manifest.permission.SEND_SMS)) {
sendMessage.setEnabled(true);
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, SEND_SMS_PERMISSION_REQUEST_CODE);
}
sendMessage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String msg = message.getText().toString();
String phonenumber = phone.getText().toString();
if (!TextUtils.isEmpty(msg) && !TextUtils.isEmpty(phonenumber)) {
if (checkPermission(Manifest.permission.SEND_SMS)) {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(String.valueOf(phone), null, msg, null, null);
} else {
Toast.makeText(MainActivity.this, "Permission denied", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(MainActivity.this, "Enter a message and a phone number", Toast.LENGTH_SHORT).show();
}
}
});
}
private boolean checkPermission(String permission) {
int checkPermission = ContextCompat.checkSelfPermission(this, permission);
return checkPermission == PackageManager.PERMISSION_GRANTED;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
switch (requestCode) {
case SEND_SMS_PERMISSION_REQUEST_CODE:
if (grantResults.length > 0 && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) {
sendMessage.setEnabled(true);
}
break;
}
}
}
解决方案
要发送消息,请尝试此代码,但首先询问/检查 SMS 权限:
SmsManager manager = SmsManager. getDefault();
manager.sendTextMessage(phonenumber, null, message, null, null);
推荐阅读
- javascript - 从网络摄像头拍摄照片并将其保存在服务器上
- python - 在多租户站点中缓存 Django 模板
- c# - 无法以编程方式单击网站按钮
- django-templates - 鹡鸰旋转木马中的多个项目
- javascript - 可以在 element-ui el-autocomplete 回调中传递数组吗?
- javascript - 出错时,无法在 XMLHttpRequest 响应中检索 ResponseBuilder 实体
- azure - Azure 应用服务网站公用名不匹配证书
- python - 除了某些字段外,如何检查 2 个字典是否相等?
- javascript - 使用事件监听器在画布中移动形状
- java - 使用 JDT Eclipse 获取 Java 方法的抽象语法树