嗨,伙计们,我是编程新手。下面的代码能够通过按下按钮将预定义的SMS发送到预定义的号码,但它将带到message composer屏幕,并要求我单击send。如何不通过消息编辑器直接发送短消息。我发现很少有人会问这个问题,其中一个解决方案是使用SMSmanger,但我不知道如何在代码中使用SMSmanger代码。
public class SendSMSActivity extends Activity {
Button buttonSend;
Button buttonSend2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonSend = (Button) findViewById(R.id.buttonSend);
buttonSend2 = (Button) findViewById(R.id.buttonSend2);
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonSend:
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "#abc");
sendIntent.putExtra("address", "9900990");
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);
break;
case R.id.buttonSend2:
Intent sendIntent1 = new Intent(Intent.ACTION_VIEW);
sendIntent1.putExtra("sms_body", "#def");
sendIntent1.putExtra("address", "9900990");
sendIntent1.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent1);
break;
}
}
};
buttonSend.setOnClickListener(listener);
buttonSend2.setOnClickListener(listener);
}
)谢谢
发布于 2014-02-15 16:38:27
尝试以下操作:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);注意: Its需要权限android.permission.SEND_SMS
发布于 2019-04-06 14:39:48
MainActivity
EditText etPhone;
EditText etMessage;
Button button;
public String[] mPermission = {SEND_SMS, READ_SMS};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etPhone = findViewById(R.id.main_et_phone);
etPhone = findViewById(R.id.main_et_message);
button = findViewById(R.id.main_btn_send);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SendSMS();
}
});
}
private void SendSMS() {
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent("SMS_SEND"), 0);
PendingIntent pendingIntentDel = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent("SMS_DELIVERED"), 0);
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(etPhone.getText().toString(), null, etMessage.getText().toString(), pendingIntent, pendingIntentDel);
}
private void SMSPermission() {
ActivityCompat.requestPermissions(MainActivity.this, mPermission, 1);
}
@Override
protected void onResume() {
super.onResume();
SMSPermission();
}https://stackoverflow.com/questions/21795262
复制相似问题