java - Android 向我发送两次相同的消息
问题描述
我正在为学校做一个项目,并尝试向用户手机发送短信。消息被发送两次而不是一次。我该如何解决这个问题?
这是我的代码:
private static final int MY_PERMISSIONS_REQUEST_SEND_SMS =1 ;
EditText textphone;
String message;
String phoneNo;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_r_e_g_i_s_t_e_r);
textphone=findViewById(R.id.phone);
c = findViewById(R.id.create1);
c.setOnClickListener(this);
c.setEnabled(false);
if(!checkPermission(Manifest.permission.SEND_SMS)){
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.SEND_SMS},
MY_PERMISSIONS_REQUEST_SEND_SMS);
}else{
c.setEnabled(true);
}
}
public void onClick(View v) {
if (v == c) {
sendmessage();}
现在方法:
private void sendmessage() {
if(checkPermission(Manifest.permission.SEND_SMS))
{
message="Hello "+ username2.getText().toString()+",welcome to Chatime. Hope you enjoy from our app.";
phoneNo=textphone.getText().toString();
if(phoneNo.length()==0){
return;
}
SmsManager smsManager=SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo,null,message,null,null);
Toast.makeText(getApplicationContext(), "Message Sent", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(getApplicationContext(), "Permission Denied", Toast.LENGTH_SHORT).show();
}
}
public boolean checkPermission(String permission){
int check=ContextCompat.checkSelfPermission(this,permission);
return (check==PackageManager.PERMISSION_GRANTED);
}
解决方案
推荐阅读
- c++ - 如果应用程序崩溃(例如 segfault 或未处理的异常),由于某些 Win10 更新,它现在似乎无声无息地死掉了
- wmi - CCM_Application 用户可用软件缺失
- html - Angular 2 CLI 项目中的 Bootstrap 4 按钮间距
- java - 具有多种实现的 Java 通用接口
- java - 熟悉异常处理
- javascript - 如何格式化接收到的 JSON 使其看起来很漂亮?
- firebase - 网页通知,在桌面同时接收所有通知
- android - 从外部浏览器(已安装的浏览器应用程序)或系统 webview 获取 Cookie 并分配给 webview
- javascript - 承诺给 then() 一个函数参数
- c# - 如何在 C# 帮助中解决这个 x^2+13^x=z^2